docker部署nginx遇到的一些小坑

1、 docker网络冲突

docker拥有四种网络模式(run --network={模式}):

  1. bridge(默认,与路由器的hdcp功能类似,会给容器分发ip地址。docker network inspect bridge可查详情),
  2. host(与宿主机共享Network namespace),
  3. container(与其他容器共享Network namespace),
  4. none(无网络),

容器启动后提示:**WARNING: Published ports are discarded when using host network mode**

docker网络,bridge,host, -p与host会产生冲突导致-p映射端口无效 :
以下代码为错误案例!
部署solo系统时看别的博主的文档导致掉进坑里

docker run -dit -p 8889:80 --name nginx --network=host \

docker network inspect bridge/host:此命令可以查到docker容器对应的联网方式以及ip

2、docker部署nginx配置文件设置监听端口(新手易疏忽)

由于nginx是装在docker中的 -p xx:80(默认),

所以nginx监听的端口只能为80,server=>listen设置其他端口无效,

因为只给容器配置了一个映射端口,除非run容器前设置多个-p,才可设置其他端口

3、nginx添加配置文件非常便捷

映射目录中:dockerData/nginx/conf=>nginx.conf 内有一句话:“include /etc/nginx/conf.d/*.conf”

也就是说conf.d文件夹下的conf文件都可以会加载进参数中,

那么我们只需要新建文件,直接输入 server与location结构即可生效。

4、查看error.log寻找nginx启动即关闭原因

nginx启动立即关闭可能是配置文件格式或者其他问题,可以进入nginx:/var/log/nginx/error.log内查看具体错误原因

5、docker部署nginx的配置文件获取方式及宿主机映射

导出配置文件(没有就重新run一个映射):

docker cp nginx:/etc/nginx/nginx.conf /dockerData/nginx/conf/nginx.conf
docker cp nginx:/etc/nginx/conf.d /dockerData/nginx/conf/conf.d

导出后启动(-p xx:80 xx=>备案了用80,没备案用其他,原因与2相同,监听只能对应-p :右边的端口):

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

解释:

-v /dockerData/nginx/conf/nginx.conf:/etc/nginx/nginx.conf \ 挂载配置文件 nginx.conf
-v /dockerData/nginx/conf/conf.d:/etc/nginx/conf.d 挂载配置文件 default.conf
-v /dockerData/nginx/www:/usr/share/nginx/html  挂载项目文件
-v /dockerData/nginx/logs:/var/log/nginx 挂载日志文件

nginx启动后访问报错403 Forbidden,原因:映射后 宿主机dockerData/nginx/www 无html文件,
在/dockerData/nginx/www新建一个html文件即可。

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值