关于docker容器的互通性之前在网上看了好多文章,大多都是使用第三方插件pipework之类的,具体没试过,总感觉插件越多维护越麻烦。之前见过有人直接桥接网卡就能实现docker容器互通,于是自己研究了一下,具体配置如下。

1.首先虚拟机开启双网卡,都能连接外网(一定要开两个网卡,要不然会访问不到外网没法下载镜像了)
2.ip addr会显示两个网卡,/etc/sysconfig/network-script目录下应该只有一个虚拟网卡我这是eth0(也可能是别的名字)
安装yum install -y bridge-utils(这个必须装)
3.新建ifcfg-br0,写入信息
DEVICE="br0"
TYPE="Bridge"
ONBOOT="yes"
NM_CONTROLLED="no"
BOOTPROTO="static"
IPADDR=“10.211.55.12”//最后一位随便写,网段不能变
NETMASK=“255.255.255.0”//子网掩码虚拟机可以查看
GATEWAY=“10.211.55.1”//这个想了半天没想明白怎么看,反正好用
4.修改ifcfg-eth0
TYPE="Ethernet"
PROXY_METHOD="none"
BROWSER_ONLY="no"
BOOTPROTO="none"
DEFROUTE="yes"
IPV4_FAILURE_FATAL="no"
IPV6INIT="no"
NAME="eth0"
UUID="84abd5e5-5f90-4a5a-8150-c851c28b4476"
DEVICE="eth0"
ONBOOT="yes"
BRIDGE="br0"
5.记得关闭systemctl stop NetworkManager
systemctl disable NetworkManager
否则IP会分配不到
6.查看/usr/lib/systemd/system/docker.service
ExecStart最后添加变量$DOCKER_OPTS 
在EnvironmentFile=-/etc/sysconfig/docker
目录下加入DOCKER_OPTS=“-b=br0”
7.systemctl restart network
systemctl daemon-reload
systemctl restart docker
 
docker run -d nginx就可以访问测试了
问题:使用过程当中发现有一个IP地址始终有问题,容器分配到了,也能ping通,端口始终无法访问,试过多种方法无效,如果遇到此问题随便开启一个容器占用即可.
posted on 2021-09-07 10:54  一个大洋葱  阅读(1828)  评论(0编辑  收藏  举报