docker容器中有关网络的一些详细配置(桥接)

环境 vwmare+centos7+docker
vmware为桥接模式 centos7能连外网即可
centos7 ip“192.168.1.100 网卡 ens33

Docker默认的网络模式为桥接模式,会将所建的容器连接到一个虚拟网络交换机docker0上
启动docker时的宿主机网卡情况

docker容器中有关网络的一些详细配置(桥接)_第1张图片

物理机在我的VMware使用的桥接模式时 就会配置一张虚拟网卡与centos7通信

docker容器中有关网络的一些详细配置(桥接)_第2张图片
docker容器中有关网络的一些详细配置(桥接)_第3张图片
docker容器中有关网络的一些详细配置(桥接)_第4张图片

此时我的物理机是无法ping通网桥的 也无法ping通容器

docker容器中有关网络的一些详细配置(桥接)_第5张图片

这里写出了启动docker容器启动时,与宿主机之间的网络连接情况,默认为桥接模式

运行一个centos容器 该容器自身的网卡情况
此centos容器可ping宿主机 也可连外网

docker容器中有关网络的一些详细配置(桥接)_第6张图片
网络配置文件

docker容器中有关网络的一些详细配置(桥接)_第7张图片

再运行一个centos1容器

docker容器中有关网络的一些详细配置(桥接)_第8张图片

再加一个nginx容器和centos2
生成三个容器后的宿主机

docker容器中有关网络的一些详细配置(桥接)_第9张图片

容器不开启宿主机不会显示网卡信息

在这里插入图片描述

**容器和宿主机(centos7)之间能够互相ping通 容器之间也可互相ping通 容器也可访问外网 **
但是我的物理机无法ping通容器,即与宿主机同一网段内的其他机器无法互相访问。需要通过NAT将容器IP的port映射为宿主机的ip和port

将ip绑定到网桥br0上

docker容器中有关网络的一些详细配置(桥接)_第10张图片

配置DNS文件/etc/resolv.conf

在这里插入图片描述
docker容器中有关网络的一些详细配置(桥接)_第11张图片
vim ifcfg-br0

docker容器中有关网络的一些详细配置(桥接)_第12张图片
docker容器中有关网络的一些详细配置(桥接)_第13张图片

这里插一个曾经配置过在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

docker容器中有关网络的一些详细配置(桥接)_第14张图片

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在同一网段

docker容器中有关网络的一些详细配置(桥接)_第15张图片

容器可连外网
容器id映射为宿主机ip

docker容器中有关网络的一些详细配置(桥接)_第16张图片

与宿主机在同一网段内的机器也可访问容器

docker容器中有关网络的一些详细配置(桥接)_第17张图片

参考CentOS7修改Docker默认启动参数(/etc/default/docker文件不存在)

docker四种网络模式

你可能感兴趣的:(docker容器中有关网络的一些详细配置(桥接))