我有以下docker文件。
FROM ubuntu
RUN apt-get update
EXPOSE 9000:80
# Install nginx
RUN apt-get install -y nginx
# Install Curl
RUN apt-get -qq update
RUN apt-get -qq -y install curl
ENTRYPOINT service nginx start
当我尝试在shell脚本中运行以下命令时,会创建docker镜像 但是,当shell脚本退出时,会启动容器和容器。
如何在shell脚本退出后保持docker容器运行?我们的想法是在端口80上运行一个运行nginx的容器,可以使用端口9000从主机访问。
答案 0 :(得分:2)
不要将nginx作为后台服务运行。当它在hub.docker.com上的nginx容器执行时,在前台启动它:
CMD ["nginx", "-g", "daemon off;"]
使用容器时,当pid 1死亡时,您的容器会死亡。它与在任何Linux机器上杀死pid 1(init)时相同。