docker ubuntu 容器执行 bash 问题
docker ubuntu container exec bash issue
我拉了&运行像
这样的图片
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
图像做同样的事情时。我发现如下响应
问题出在哪里?为什么容器退出?谢谢。
导致不同行为的原因是因为他们的 Dockerfile CMD 或 ENTRYPOINT。
主进程(CMD 或 ENTRYPOINT)完成后,docker 容器停止。
ENTRYPOINT ["/entrypoint.sh"]
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 因此容器不会退出.
我拉了&运行像
这样的图片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
图像做同样的事情时。我发现如下响应
导致不同行为的原因是因为他们的 Dockerfile CMD 或 ENTRYPOINT。
主进程(CMD 或 ENTRYPOINT)完成后,docker 容器停止。
ENTRYPOINT ["/entrypoint.sh"]
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 因此容器不会退出.