Docker容器的网络管理和网络隔离的实现

论坛 期权论坛 脚本     
niminba   2021-5-23 03:01   1856   0

一、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:/c9kyfjKIXXML
XXYXMYMMYLYNYBH\]NLMLLB	Kyj:acyT9g,9g`KIH^XZ][\	KyoeXjKIXXMYY	Ky"9g,9g`KI]H[[]\]QNNNNLPB[]YNLMLLNLMLMHX\MKMKMKBXXM[NLMLLH	KKKISNLMLLH
NLMLLJH
M
H]\]KB]\NLMLLNX\OLHM[YOL\]\NLMLLNX\OLM[YOL
H\]\NLMLLNX\OLM[YOL\XXM[NLMLL	KKKISNLMLL
NLMLL
H
M
H]\]KB]\NLMLLX\OLHM[YOL\]\NLMLLX\OLM[YOL\]\NLMLLX\OLM[YOL\XXM[NLML	KKKISNLML
NLML
H
M
H]\]KB]\NLMLX\OLHM[YOLM
\]\NLMLX\OLM[YOLM\]\NLMLX\OLM[YOL
\OB]Bb,9i:/lkyfj9d9f9k,y.,:/9&al9d9f9aykz+'9c..cy%c"9al#9&.#i&i&+/c.
分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:1060120
帖子:212021
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP