docker安装nginx

菜鸟教程

Docker 安装 Nginx - Docker 教程 - 菜鸟学堂-脚本之家

一、拉取镜像

docker pull nginx:1.24.0

二、创建配置文件

创建目录

mkdir -p /data/nginx/conf

启动前需要先创建Nginx外部挂载的配置文件( /data/nginx/conf/nginx.conf)
之所以要先创建 , 是因为Nginx本身容器只存在/etc/nginx 目录 , 本身就不创建 nginx.conf 文件
当服务器和容器都不存在 nginx.conf 文件时, 执行启动命令的时候 docker会将nginx.conf 作为目录创建 , 这并不是我们想要的结果 。

生成容器

docker run -p 80:80 -d --name nginx nginx:1.24.0


挂载配置文件

# nginx容器名、/etc/nginx/nginx.conf 配置文件容器内的地址
拷贝 Nginx 主配置文件
docker cp nginx:/etc/nginx/nginx.conf /data/nginx
拷贝 Nginx 额外配置文件目录
docker cp nginx:/etc/nginx/conf.d /data/nginx/conf
拷贝 html 目录,(这个拷贝过来的时候自身带了一层/html)
docker cp nginx:/usr/share/nginx/html /data/nginx

这里需要注意拷贝html的时候,他自身会带一层/html目录,可能会导致后面访问的时候找不到index.htm或index.html文件

删除容器

docker stop nginx

docker rm nginx

三、启动

docker run -p 80:80 --restart=always -d --name nginx -v /data/nginx/nginx.conf:/etc/nginx/nginx.conf -v /data/nginx/conf/conf.d:/etc/nginx/conf.d -v /data/nginx/html:/usr/share/nginx/html nginx:1.24.0

四、验证

http://ip:80

五、问题归集

因为我虚拟机全是新安装的,所以什么配置都没有配过,

到“启动”这一步都是好的,最后进行“http://ip:80”访问的时候返回403

需要调整nginx.conf配置文件

因为新的nginx配置文件里的配置信息没啥东西,需要自己加上

在http {}中添加

server {
        listen       80;
        server_name  127.0.0.1;

        index index.html;

        location / {
            root   /usr/share/nginx/html;
            index  index.html index.htm;
        }
    }

重启nginx

docker stop nginx

docker start nginx

再次访问还是不行,查看了nginx里的日志显示没“/usr/share/nginx/html”这个目录,去新建一下

mkdir /usr/share/nginx

mkdir /usr/share/nginx/html

删除容器,重新启动一下,还是不行,还是403

最后发现是因为挂载html的时候,他自带了一层/html目录,导致最后挂载html的时候变成了/html/html。

重新全部重来,并在挂载时处理多一层/html的问题(前面的操作步骤已经是处理后的命令)。

进入docker容器,检查/usr/share/nginx/html目录下的文件

docker exec -it <container_id_or_name> /bin/bash
ls /usr/share/nginx/html

这时能找到index.html文件了,然后再次访问就正常了

成功之后没有去验证“/usr/share/nginx/html”这个目录还需要手动再去新建吗?因为处理问题时,这个目录被我新建了,也不想再删了再来一次了

mkdir /usr/share/nginx

mkdir /usr/share/nginx/html

因为虚拟机里的这个目录下还是没文件的,所以应该是不需要了的

参考:

Docker 安装 Nginx 容器 (完整详细版) - Linux运维阿铭 - 博客园

docker安装nginx-CSDN博客

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值