Если вы посмотрите на вашу сборку, вы увидите запуск службы ssh в промежуточном контейнере, который будет удален на следующем этапе сборки:
---> Running in a1afe0c2ce71
* Starting OpenBSD Secure Shell server sshd [ OK ]
Removing intermediate container a1afe0c2ce71
Чтобы запустить службу в Dockerfile, вы должны использовать оператор CMD
или ENTRYPOINT
в качестве последней строки (в зависимости от того, хотите ли вы передать аргумент в команде docker run ...
, обычно.
Как правило, служба будет запускаться в фоновом режиме как демон, поэтому в качестве последней строки укажите:
CMD ["service", "ssh", "start"]
Не будет работать, так как контейнер выйдет, так как он не имеет никакого отношения к
Что вы, вероятно, хотите (из документации докера ) это:
CMD ["/usr/sbin/sshd", "-D"]
Запускает службу на переднем плане, чтобы контейнер оставался в живых.
Эта ссылка содержит полезную информацию о разнице между CMD и ENTRYPOINT, а также о разнице между форматами exec и shell.