Когда вы запускаете
docker -D run -p 80:80 -p 2222:22 -it /bin/bash
Последняя часть команды, /bin/bash
, заменяет CMD
в Dockerfile, поэтому вы only получаете оболочку GNU bash.Вы должны удалить эту часть строки, и стандартная команда из вашего образа будет запущена.
Вы можете подумать, насколько вам на самом деле нужна интерактивная оболочка в вашей среде Docker.Большинство образов приложений настроены на самостоятельную работу без шагов ручной настройки;сравните, например, изображения mysql
или nginx
, которые не включают в себя какую-либо систему удаленного входа.Также учтите, что любой, кто может запустить docker history
, теперь может легко узнать ваш пароль root, и у вас нет возможности управлять ключами хоста sshd.Я бы предложил удалить всю эту систему supervisord / sshd и просто упаковать ваше приложение.