运行 Docker 上的 Nginx
Running Nginx on Docker
我正在学习如何从 Docker 文件构建 Docker 图像。这是我当前的 Docker 文件:
FROM ubuntu:14.04
RUN apt-get update && apt-get install -y nginx
CMD ["/usr/sbin/nginx"]
我可以构建这个图像,运行 它,并使用 docker run -t -i -p 80:80 mytestimage /bin/bash/
连接到容器。然后,我可以 运行 nginx
并从网络浏览器连接到 "hello world" 页面。
但我无法让 Nginx 运行 作为守护进程(不从容器的 shell 手动启动它)。我试过 docker run -d -p 80:80 mytestimage
,但 docker ps
是空的。我究竟做错了什么?我一直在查看 official Nginx Dockerfile,但我不确定需要将哪些部分添加到我自己的 Docker 文件中。
问题是 nginx 没有 运行 在前台,所以每次你的容器执行 CMD
指令时,它 returns 然后容器退出。
您需要将以下内容添加到顶部的 /etc/nginx/nginx.conf
daemon off;
然后你可以 运行 你的容器是这样的:
docker run -ti -p 80:80 mytestimage
您需要在 Dockerfile 中添加以下内容
CMD ["nginx", "-g", "daemon off;"]
和 docker 容器可以 运行 使用命令:docker 运行 -d -p 8980:80 test-nginx
以上端口8980只是一个例子,这是从Dockerfile配置的
我正在学习如何从 Docker 文件构建 Docker 图像。这是我当前的 Docker 文件:
FROM ubuntu:14.04
RUN apt-get update && apt-get install -y nginx
CMD ["/usr/sbin/nginx"]
我可以构建这个图像,运行 它,并使用 docker run -t -i -p 80:80 mytestimage /bin/bash/
连接到容器。然后,我可以 运行 nginx
并从网络浏览器连接到 "hello world" 页面。
但我无法让 Nginx 运行 作为守护进程(不从容器的 shell 手动启动它)。我试过 docker run -d -p 80:80 mytestimage
,但 docker ps
是空的。我究竟做错了什么?我一直在查看 official Nginx Dockerfile,但我不确定需要将哪些部分添加到我自己的 Docker 文件中。
问题是 nginx 没有 运行 在前台,所以每次你的容器执行 CMD
指令时,它 returns 然后容器退出。
您需要将以下内容添加到顶部的 /etc/nginx/nginx.conf
daemon off;
然后你可以 运行 你的容器是这样的:
docker run -ti -p 80:80 mytestimage
您需要在 Dockerfile 中添加以下内容
CMD ["nginx", "-g", "daemon off;"]
和 docker 容器可以 运行 使用命令:docker 运行 -d -p 8980:80 test-nginx
以上端口8980只是一个例子,这是从Dockerfile配置的