CI/CD фактически можно воспринимать как bash скрипт, который автоматически запускается при заданных событиях, можно делать буквально все то, что бы вы делали руками на сервере или локальной тачке.
Да, нет никакой проблемы сделать docker build => push и далее, зайдя на сервак перезапустить сервис, будь то docker-compose или что-то еще.
Можно сделать и без похода на сервер через SSH, если на вашем сервере будет какой-то синхронизатор, который будет время от времени смотреть в docker registry новые версии образов и запускать их, в таком случае в CI вы просто собираете образ и кидаете в registry.