Answers:
nginx
像所有行为良好的程序一样,可以配置为不自我守护。
使用http://wiki.nginx.org/CoreModule中daemon off
描述的配置指令。
daemon off
nginx不认可它。
为了扩展Charles Duffy的答案,Nginx使用daemon off
指令在前台运行。如果不方便将其放在配置文件中,我们可以直接在命令行中指定它。通过更改命令行参数,可以轻松地在调试模式(前景)中运行,并直接切换到在生产模式(背景)中运行。
要在前台运行:
nginx -g 'daemon off;'
要在后台运行:
nginx
将此命令添加到Dockerfile可以禁用它:
RUN echo "daemon off;" >> /etc/nginx/nginx.conf
仅供参考,截至今天(2019年10月22日),所有官方Nginx Docker镜像都包含以下内容:
CMD ["nginx", "-g", "daemon off;"]
在这里,您有一个运行nginx的Dockerfile的示例。正如查尔斯提到的,它使用daemon off
配置:
https://github.com/darron/docker-nginx-php5/blob/master/Dockerfile#L17
使用supervisor或runit [1]进行服务管理也是一个好主意。
对于所有来这里尝试在Docker容器中运行Nginx映像的人来说,它将作为服务运行
由于没有完整的Dockerfile,因此这是我的整体Dockerfile
解决方案。
很好,工作。感谢这里的所有答案,以便解决最终的nginx问题。
FROM ubuntu:18.04
MAINTAINER stackoverfloguy "stackoverfloguy@foo.com"
RUN apt-get update -y
RUN apt-get install net-tools nginx ufw sudo -y
RUN adduser --disabled-password --gecos '' docker
RUN adduser docker sudo
RUN echo '%sudo ALL=(ALL) NOPASSWD:ALL' >> /etc/sudoers
USER docker
RUN sudo ufw default allow incoming
RUN sudo rm /etc/nginx/nginx.conf
RUN sudo rm /etc/nginx/sites-available/default
RUN sudo rm /var/www/html/index.nginx-debian.html
VOLUME /var/log
VOLUME /usr/share/nginx/html
VOLUME /etc/nginx
VOLUME /var/run
COPY conf/nginx.conf /etc/nginx/nginx.conf
COPY content/* /var/www/html/
COPY Dockerfile /var/www/html
COPY start.sh /etc/nginx/start.sh
RUN sudo chmod +x /etc/nginx/start.sh
RUN sudo chmod -R 777 /var/www/html
EXPOSE 80
EXPOSE 443
ENTRYPOINT sudo nginx -c /etc/nginx/nginx.conf -g 'daemon off;'
并运行:
docker run -p 80:80 -p 443:443 -dit