CentOS 7.9 docker 运行 Nginx 采坑记录,IPv4 forwarding is disabled. Networking will not work....(虚拟机内docker容器无法访问外部网络)

docker 使用Nginx做负载的时候,由于自己是个新手,第一次接触docker以及nginx,踩了一个坑,在此记录下。

1、安装docker

2、安装nginx

3、宿主机与容器nginx配置文件挂载

4、配置负载均衡

upstream ytest {
    #后端目标服务器
        server 192.168.182.132:8500;
        server 192.168.182.131:8500;
    }
    server {
    #前端接受流量入口
        listen 80;
        server_name localhost;
        location / { 
            proxy_pass http://ytest;
        }
    }

问题就发生在这块,目标两个服务器也是虚拟机,里面安装了consul,但是怎么试,都不起作用,后来我多次删除、创建容器,终于提示错误了

然后我进入容器里面,访问了外网,发现确实不好用。

接下来开始一顿操作.....

5、安装vim(如果已安装直接执行6)

yum -y install vim*

6、修改宿主机配置

#如果vim提示找不到,则执行上安装vim
vim /etc/sysctl.conf 
#配置转发
net.ipv4.ip_forward=1
#重启服务,让配置生效
systemctl restart network
#查看是否成功,如果返回为“net.ipv4.ip_forward = 1”则表示成功
sysctl net.ipv4.ip_forward
#重启docker服务
service docker restart

至此需要的操作就完事了,再次进入容器,访问下外网,例如百度啥的,应该就好用了。也访问了负载后端服务器,都可以访问。然后通过浏览器访问nginx负载地址,已经好用了。

posted @ 2022-04-14 11:55  PrintY  阅读(321)  评论(0编辑  收藏  举报