dayi的大键盘
dayi的大键盘

云与虚拟化_实验8 利用Docker实现容器互连

云与虚拟化_实验8 利用Docker实现容器互连

主机名 IP地址/子网掩码 容器名 容器IP地址
node-a 192.168.59.128/24 node1_busybox 172.100.0.10
node-b 192.168.59.130/24 node2_busybox 172.100.1.10

1. 需要两个虚拟机

克隆一个OVO

https://cmd.dayi.ink/uploads/upload_6cd7f718cf8a46d7e1b5f7659d33fa2a.png

具体的机子:

  • node-a
  • node-b
#修改克隆机子的主机名
vim /etc/hostname
reboot
https://cmd.dayi.ink/uploads/upload_48cb47f1e03656e74f4f11898699ac61.png

查看IP地址

ip addr
https://cmd.dayi.ink/uploads/upload_8c171ff472cd95feacb685ab0a7c4a33.png
https://cmd.dayi.ink/uploads/upload_acde9e6a835f617e104ad648b07a5b59.png

我这里两个机子的IP:

  • 192.168.59.128 node-a
  • 192.168.59.130 node-b

步骤1-4

node-a上创建网桥和容器

# 创建自定义网桥,并分配网段172.100.0.0/24
docker network create --subnet=172.100.0.0/24 node1-br0
# 查看网桥信息
docker network inspect node1-br0
# 启动一个容器,并设置IP地址为172.100.0.10/24
docker run -itd --net=node1-br0 --ip=172.100.0.10 --name node1_busybox busybox

# 查看容器的IP
docker exec -it node1_busybox ip addr
# 测试容器和网桥是否能通
docker exec -it node1_busybox ping -c 4 172.100.0.1
https://cmd.dayi.ink/uploads/upload_ceaf7401c8421fbcc9f166a663c3cf66.png

node-b 上创建网桥和容器

# 创建自定义网桥,并分配网段172.100.1.0/24
docker network create --subnet=172.100.1.0/24 node2-br0
# 查看网桥信息
docker network inspect node2-br0
# 启动一个容器,并设置IP地址为172.100.1.10/24
docker run -itd --net=node2-br0 --ip=172.100.1.10 --name node2_busybox busybox

# 查看容器的IP
docker exec -it node2_busybox ip addr
# 测试容器和网桥是否能通
docker exec -it node2_busybox ping -c 4 172.100.1.1
https://cmd.dayi.ink/uploads/upload_fe1274869896c138a4e484fb6831a7d4.png

测试两个容器之间是否可以相通

结果应该是不通!

node-a

docker exec -it node1_busybox ping -c 4 172.100.1.10

node-b

docker exec -it node2_busybox ping -c 4 172.100.0.10

蚌埠,通了,真蚌埠住了(因为这个公网IP,主机开了tun的网卡,然后就通了)

https://cmd.dayi.ink/uploads/upload_929bf6313712ebb362d9edf8fd8def23.png

关掉tun网卡: 这样是正常的:

https://cmd.dayi.ink/uploads/upload_ce4d50f36c3b1d318bf670504531bc6f.png

然后这个通了(但通的是一个美国的机子,这次实验的ip是公网IP,172的IP只有部分(0-31)是公网):

https://cmd.dayi.ink/uploads/upload_73997a9e9a3a06eef7ebfe2cbd75ece9.png
https://cmd.dayi.ink/uploads/upload_2b505f789f23e17f27fefefe05336d0f.png

步骤5

在node-a节点和node-b节点上配置路由表和iptable规则。

把iptables全部清除了之后加了个路由表。

node-a

#添加路由表
ip route add 172.100.1.0/24 via 192.168.59.130 dev ens33
# 清除iptables规则,并设置默认策略为接受
iptables -P INPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -F
iptables -L -n
https://cmd.dayi.ink/uploads/upload_1603088308f7416e5ebfc5fec1795a4f.png

node-b

ip route add 172.100.1.0/24 via 192.168.59.128 dev ens33
# 清除iptables规则,并设置默认策略为接受
iptables -P INPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -F
iptables -L -n

步骤6 再次测试node1节点上的node1-busybox容器与node2节点上的node2-busybox容器与是否可以连通。在node1节点上进行测试。

ping -c 4 172.100.1.10
PING 172.100.1.10 (172.100.1.10): 56 data bytes
64 bytes from 172.100.1.10: seq=0 ttl=62 time=12.601 ms

通啦

没有标签
首页      未分类      云与虚拟化_实验8 利用Docker实现容器互连

发表回复

textsms
account_circle
email

dayi的大键盘

云与虚拟化_实验8 利用Docker实现容器互连
# 云与虚拟化_实验8 利用Docker实现容器互连 | 主机名 | IP地址/子网掩码 | 容器名 | 容器IP地址 | | ------ | ---------------- | ------------- | ------------ | | nod…
扫描二维码继续阅读
2023-11-23