环境 vwmare+centos7+docker
vmware为桥接模式 centos7能连外网即可
centos7 ip“192.168.1.100 网卡 ens33
Docker默认的网络模式为桥接模式,会将所建的容器连接到一个虚拟网络交换机docker0上
启动docker时的宿主机网卡情况
物理机在我的VMware使用的桥接模式时 就会配置一张虚拟网卡与centos7通信
此时我的物理机是无法ping通网桥的 也无法ping通容器
这里写出了启动docker容器启动时,与宿主机之间的网络连接情况,默认为桥接模式
运行一个centos容器 该容器自身的网卡情况
此centos容器可ping宿主机 也可连外网
网络配置文件
再运行一个centos1容器
再加一个nginx容器和centos2
生成三个容器后的宿主机
容器不开启宿主机不会显示网卡信息
**容器和宿主机(centos7)之间能够互相ping通 容器之间也可互相ping通 容器也可访问外网 **
但是我的物理机无法ping通容器,即与宿主机同一网段内的其他机器无法互相访问。需要通过NAT将容器IP的port映射为宿主机的ip和port
将ip绑定到网桥br0上
配置DNS文件/etc/resolv.conf
vim ifcfg-br0
这里插一个曾经配置过在ubuntu16.04下的网桥配置
ubuntu 16.04 VMWare+Ubuntu+KVM+VNC
此时centos7网络状况良好
接下来修改docke的配置文件
我这里没有/etc/sysconfig/docker这个文件
Docker是交给systemd来管理的,它的配置文件在/usr/lib/systemd/system/docker.service
需要添加EnvironmentFile=-/etc/default/docker,让后在ExecStart这个配置中,添加引用的参数$DOCKER_OPTS
-代表ignore error
vim /etc/sysconfig/docker
#选择网桥
DOCKER_OPTS=”-b=br0″
#指定DNS
#DOCKER_OPTS=”–dns 114.114.114.114 –dns 8.8.8.8″
#重载
systemctl daemon-reload
#重启docker服务
service docker restart
查看加载状态
systemctl status docker.service
重新开启容器 查看ip 可看到ip已经与br0在同一网段
容器可连外网
容器id映射为宿主机ip
与宿主机在同一网段内的机器也可访问容器
参考
CentOS7修改Docker默认启动参数(/etc/default/docker文件不存在)
docker四种网络模式