Docker 安装 nginx

1.拉取镜像

docker pull nginx

2.查看镜像

docker images

3.创建目录及文件

mkdir -p /usr/local/gep/nginx/conf
mkdir -p /usr/local/gep/nginx/html
touch /usr/local/gep/nginx/conf/nginx.conf

4.在nginx.conf中配置多个端口监听

worker_processes  1;

events {
    worker_connections  1024;
}


http {
    include       mime.types;
    default_type  application/octet-stream;
    sendfile        on;
    keepalive_timeout  65;

    server {
        listen     10011;
        server_name  localhost;

        location / {
            root /usr/share/nginx/html; # nginx工作目录是容器的而非宿主机
            index index.html index.htm;
    }
        # axios 配置代理转发
    location /redis/ {
            proxy_pass http://www.redis.cn/;
        }
    }

    server {
        listen     10012;
        server_name localhost;
        location / {
             root  /usr/share/nginx/html; # nginx工作目录是容器的而非宿主机
             index index.html index.htm;
        }
        # axios 配置代理转发 
        location /zhihu/ {
             proxy_pass https://www.zhihu.com/;
        }
    }
}

 5.创建容器并启动

docker run -it -d 
--name gep_nginx 
-p 10012:10012 
-p 10011:10011 
-v /usr/local/gep/nginx/conf/nginx.conf:/etc/nginx/nginx.conf 
-v /usr/local/gep/nginx/html:/usr/share/nginx/html 
nginx 

参数说明:

  --name  给镜像也别名

  -p 是端口

  -v  表示挂载文件或目录,左边为宿主机位置,右边为容器位置,这样在宿主机修改的文件或目录会自动到容器内。

  如果不做配置文件的同步,宿主机修改的配置文件在容器无法生效;如果不做目录的挂载,通过nginx访问的资源会报404。

5. 查看容器

docker ps -a

6. 查看nginx启动日志(gep_nginx是我自己的镜像名)

docker logs gep_nginx

7. 启动、关闭、重启nginx (gep_nginx是我自己的镜像名)

docker start gep_nginx 
docker stop gep_nginx 
docker restart gep_nginx
原文地址:https://www.cnblogs.com/mumuda/p/14823590.html