一、Docker网络的管理
1、Docker容器的方式
1)Docker访问外网
Docker容器连接到宿主机的Docker0网桥访问外网;默认自动将docker0网桥添加到docker容器中。
2)容器和容器之间通信
需要管理员创建网桥;将不同的容器连接到网桥上实现容器和容器之间相互访问。
3)外部网络访问容器
通过端口映射或者同步docker宿主机网络配置实现通信。
2、Docker容器网络通信的模式
1)bridge
默认容器访问外网通信使用;依赖docker0网桥。
2)none
需要给容器创建独立的网络命名空间;不会给创建的容器配置TCP/IP信息。
3)container
容器和容器通信使用;容器需要共享容器名称空间,通过共享容器名称空间实现不同容器通信。
4)host
容器内部网络和宿主机保持同步。
3、配置bridge网络通信模式
[root@centos01 yum.repos.d]# wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo
<!--安装centos7源-->
[root@centos01 ~]# yum -y install docker <!--安装docker-->
[root@centos01 ~]# systemctl start docker <!--启动docker-->
[root@centos01 ~]# systemctl enable docker <!--设置docker开机自动启动-->
[root@centos01 ~]# echo "net.ipv4.ip_forward = 1" >> /etc/sysctl.conf <!--开启路由功能-->
[root@centos01 ~]# sysctl -p <!--刷新配置-->
net.ipv4.ip_forward = 1
[root@centos01 ~]# docker pull hub.c.163.com/public/centos:7.2-tools <!--下载镜像-->
[root@centos01 ~]# docker images <!--查看镜像-->
REPOSITORY TAG IMAGE ID CREATED SIZE
hub.c.163.com/public/centos 7.2-tools 4a4618db62b9 3 years ago 515 MB
[root@centos01 ~]# docker run -d --net=bridge --name centos7.201 hub.c.163.com/public/centos:7.2-tools
<!--配置创建的容器桥接网络通信,容器访问互联网使用-->
b308fb5c097fd455073f2f4a280d2660e6943fe1a62d6409e8ebcd3b86469438
[root@centos01 ~]# docker ps <!--查看运行的容器-->
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
b308fb5c097f hub.c.163.com/public/centos:7.2-tools "/usr/bin/supervisord" 20 seconds ago Up 19 seconds 22/tcp centos7.201
[root@centos01 ~]# ifconfig <!--查看Docker宿主机IP地址信息-->
docker0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 172.17.0.1 netmask 255.255.0.0 broadcast 0.0.0.0
[root@centos01 ~]# docker exec -it centos7.201 /bin/bash <!--登录centos7.201容器-->
[root@b308fb5c097f /]# ifconfig <!--查看IP地址-->
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 172.17.0.2 netmask 255.255.0.0 broadcast 0.0.0.0
[root@b308fb5c097f /]# ping www.baidu.com <!--centos7.201容器ping公网测试-->
PING www.a.shifen.com (39.156.66.18) 56(84) bytes of data.
64 bytes from 39.156.66.18: icmp_seq=1 ttl=50 time=18.4 ms
64 bytes from 39.156.66.18: icmp_seq=2 ttl=50 time=18.3 ms
64 bytes from 39.156.66.18: icmp_seq=3 ttl=50 time=16.9 ms
[root@b308fb5c097f /]# ping 192.168.100.10 <!--ping宿主机IP测试 -->
PING 192.168.100.10 (192.168.100.10) 56(84) bytes of data.
64 bytes from 192.168.100.10: icmp_seq=1 ttl=64 time=0.043 ms
64 bytes from 192.168.100.10: icmp_seq=2 ttl=64 time=0.086 ms
64 bytes from 192.168.100.10: icmp_seq=3 ttl=64 time=0.150 ms
4、配置none网络通信模式
[root@centos01 ~]# docker run -d --net=none --name centos7.202 hub.c.163.com/public/centos:7.2-tools
<!--配置docker容器不需要连接到网络,容器无法通信-->
e2c4837d67818e7ef4d7cedf964db21d98cabb594d12091d7f69da4e8fb3f30f
[root@centos01 ~]# docker ps <!--查看运行的容器-->
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
e2c4837d6781 hub.c.163.com/public/centos:7.2-tools "/usr/bin/supervisord" 57 seconds ago Up 56 seconds centos7.202
b308fb5c097f hub.c.163.com/public/centos:7.2-tools "/usr/bin/supervisord" 7 minutes ago Up 7 minutes 22/tcp centos7.201
[root@centos01 ~]# docker exec -it centos7.202 /bin/bash <!--登录centos7.202容器-->
[root@e2c4837d6781 /]# ifconfig <!--查看IP地址-->
lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
[root@e2c4837d6781 /]# ping www.baidu.com <!--ping公网发现是不通的-->
ping: unknown host www.baidu.com
[root@e2c4837d6781 /]#
[root@e2c4837d6781 /]# ping 192.168.100.10 <!--ping宿主机IP地址发现是不通的-->
connect: Network is unreachable
5、配置host网络通信模式
[root@centos01 ~]# docker run -d --net=host --name centos7.203 -v /data1 hub.c.163.com/public/centos:7.2-tools
<!--配置运行的容器和宿主机网络保持同步-->
2911358be486720c4ee93c1c:/c9kyfjKIXXML
XXYXMYMMYLYNYBH\]NLMLLB Kyj:acyT9g,9g`KIH^XZ][\ KyoeXjKIXXMYY Ky"9g,9g`KI]H[[]\]QNNNNLPB[]YNLMLLNLMLMHX\MKMKMKBXXM[NLMLLH KKKISNLMLLH
NLMLLJH
M
H]\]KB]\NLMLLNX\OLHM[YOL\]\NLMLLNX\OLM[YOL
H\]\NLMLLNX\OLM[YOL\XXM[NLMLL KKKISNLMLL
NLMLL
H
M
H]\]KB]\NLMLLX\OLHM[YOL\]\NLMLLX\OLM[YOL\]\NLMLLX\OLM[YOL\XXM[NLML KKKISNLML
NLML
H
M
H]\]KB]\NLMLX\OLHM[YOLM
\]\NLMLX\OLM[YOLM\]\NLMLX\OLM[YOL
\OB]Bb,9i:/lkyfj9d9f9k,y.,:/9&al9d9f9aykz+'9c..cy%c"9al#9&.#i&i&+/c. |