繁体   English   中英

在 Docker 上运行 Nginx

[英]Running Nginx on Docker

我正在学习如何从 Dockerfiles 构建 Docker 图像。 这是我目前的 Dockerfile:

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并从 web 浏览器连接到“hello world”页面。

但我无法让 Nginx 作为守护进程运行(无需从容器的外壳手动启动它)。 我试过docker run -d -p 80:80 mytestimage ,但docker ps是空的。 我究竟做错了什么? 我一直在看官方的 Nginx Dockerfile ,但我不确定我需要将哪些部分添加到我自己的 Dockerfile 中。

您需要在 Dockerfile 中添加以下内容

CMD ["nginx", "-g", "守护进程关闭;"]

并且可以使用命令运行 docker 容器: docker run -d -p 8980:80 test-nginx

以上 8980 端口只是一个例子,这是从 Dockerfile 配置的

问题是 nginx 不在前台运行,因此每次您的容器执行CMD指令时,它都会返回,然后容器退出。

您需要将以下内容添加到您的/etc/nginx/nginx.conf顶部

daemon off;

然后你可以像这样运行你的容器:

docker run -ti -p 80:80 mytestimage

您必须在启动时执行 nginx。 这是你如何做到的。 在 dockerFile 中添加 CMD ["nginx", "-g", "daemon off;"]。

完整指南: 如何设置 PHP 8、NGINX 和 php-fpm docker

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM