Docker 玩转 Nginx

Docker安装Nginx

1拉取镜像

docker pull nginx

2启动镜像

docker run --name mynginx -p 8001:80 -d nginx

3查看镜像状态

docker ps

在这里插入图片描述
在这里插入图片描述发现容器正常运行,访问也正常。

修改Nginx卷挂载

1创建挂在目录文件

mkdir -p /root/nginx/www /root/nginx/logs /root/nginx/conf

2配置文件拷贝

把正在运行的nginx配置文件copy出来

docker cp 402a6c5357fc:/etc/nginx/nginx.conf /root/nginx/conf

3删除已有的容器

[root@VM-24-14-centos conf]# docker stop 402
402
[root@VM-24-14-centos conf]# docker rm 402
402

4容器启动

docker run -d -p 8001:80 --name mynginx \
-v /root/nginx/www:/usr/share/nginx/html \
-v /root/nginx/conf/nginx.conf:/etc/nginx/nginx.conf   \
-v /root/nginx/logs:/var/log/nginx nginx

5创建页面

因为www的卷挂载已经把容器内部原有的index.html覆盖,所以直接访会报错,随便找一个index.html放进刚创建的www包里面再访问
在这里插入图片描述

访问成功

Docker容器下Nginx配置多端口

因为创建docker容器的时候 默认的网络是采用桥接的模式进行的,所以开放的端口是通过-p 进行暴漏,而且性能也有所下降,这里我们可以使用host模式,这样同步同步更改的端口也不需要指定-p进行暴漏

1删除原有的容器

# 停止容器
docker stop 73d1a1d24e1d
# 删除容器
docker rm 73d1a1d24e1d

2创建容器

这里不用指定端口,增加--netwrok=host

docker run -d  --name mynginx \
-v /root/nginx/www:/usr/share/nginx/html \
-v /root/nginx/conf/nginx.conf:/etc/nginx/nginx.conf \
-v /root/nginx/logs:/var/log/nginx  --network=host  nginx

3修改nginx配置文件

修改root/nginx/conf 目录下的配置文件

server {
    listen 81;
    server_name localhost;
    #这里填写-v 挂在www的容器地址
    root /usr/share/nginx/html;
    index cc.html;     
}

重启容器

docker restart  eb343ec08458

我们发现端口已经暴漏出来了
在这里插入图片描述
然后我们在www文件下放一个cc.html然后访问发现已经可以了
在这里插入图片描述

配置Nginx静态资源

修改配置文件

       location /static/ {
            alias  /usr/share/nginx/html/static/;
            autoindex on;
        }

把静态资源放置在/www/static/(这里的路径自行修改) 目录下 然后重启容器访问
在这里插入图片描述

posted @ 2022-04-12 17:05  xiye1  阅读(54)  评论(0)    收藏  举报