Docker Ubuntu Контейнер Exec Bash Проблема - PullRequest
0 голосов
/ 19 сентября 2018

Я вытягиваю и запускаю изображение типа

docker run -d --name=lemp \
  -v /Users/bappa/Desktop/server/www:/var/www/ \
  -p 8080:80 \
  stenote/docker-lemp:16.04

, а затем перехожу на bash, как

docker exec -it lemp bash

, что совершенно нормально.Но когда я делаю с ubuntu:16.04 изображение то же самое.Я нашел ответ, как показано ниже enter image description here В чем проблема?почему контейнер выход?Спасибо.

1 Ответ

0 голосов
/ 19 сентября 2018

Причиной, вызвавшей другое поведение, является их Dockerfile CMD или ENTRYPOINT.

После завершения основного процесса (CMD или ENTRYPOINT) контейнер Docker останавливается.

Если вы посмотритев docker-lemp Dockerfile :

ENTRYPOINT ["/entrypoint.sh"]

Сравнение с Ubuntu Dockerfile :

CMD ["bash"]

docker-lemp запускает файл entrypoint.sh, который запускаетсядальнейшие процессы, которые остаются на переднем плане, пока Ubuntu запускает bash, который завершает свою работу после завершения.

Если вы хотите сохранить Ubuntu в фоновом режиме, простой трюк будет:

docker container run -d ubuntu:16.04 tail -f /dev/null

Это заменитCMD bash по умолчанию с tail -f / dev / null , поэтому контейнер не выходит.

...