Nginxconfiguration有一个daemon off; 指令在/root/nginx.conf设置。
我试图在docker下使用这个命令来运行它:
sudo docker run --name nginx-redirect -p 3128:3128 -v /root/nginx.conf:/etc/nginx/nginx.conf:ro -d nginx
但没有任何反应(除了容器ID的Docker输出,我认为这应该意味着一切正常),并且netstat -tulpn显示没有netstat -tulpn docker/nginx容器和没有3128端口,我错了?
/root/nginx.conf :
user www-data; worker_processes auto; pid /run/nginx.pid; daemon off; events { worker_connections 768; } http { server { listen 3128; location / { proxy_pass http://example.com; } } }
默认的nginx容器在daemon off;情况下运行daemon off; 你可以从Dockerfile中validation
FROM debian:jessie MAINTAINER NGINX Docker Maintainers "[email protected]" ENV NGINX_VERSION 1.10.2-1~jessie RUN apt-key adv --keyserver hkp://pgp.mit.edu:80 --recv-keys 573BFD6B3D8FBC641079A6ABABF5BD827BD9BF62 \ && echo "deb http://nginx.org/packages/debian/ jessie nginx" >> /etc/apt/sources.list \ && apt-get update \ && apt-get install --no-install-recommends --no-install-suggests -y \ ca-certificates \ nginx=${NGINX_VERSION} \ nginx-module-xslt \ nginx-module-geoip \ nginx-module-image-filter \ nginx-module-perl \ nginx-module-njs \ gettext-base \ && rm -rf /var/lib/apt/lists/* # forward request and error logs to docker log collector RUN ln -sf /dev/stdout /var/log/nginx/access.log \ && ln -sf /dev/stderr /var/log/nginx/error.log EXPOSE 80 443 CMD ["nginx", "-g", "daemon off;"]
Nginx的Dockerfile
所以你需要从你的nginx文件中移除守护进程指令运行容器,它应该工作正常。