计算机系统应用教程网站

网站首页 > 技术文章 正文

一分钟看懂Docker的网络模式和跨主机通信

btikc 2024-10-14 08:45:58 技术文章 7 ℃ 0 评论
  • vagrant启动虚拟机docker-node1,通过docker-node1启动里面的容器test1 和test2,当进入test1容器,ping baidu发现可以ping通。这是什么原理呢,肯定是通过可以转接的方式,容器---虚拟机----宿主机--baidu。







为了更好的了解docker网络

  • 停止test2,删除test2
sudo docker ps
sudo docker stop test2
sudo docker rm test2
sudo docker ps



  • docker 网络

可以看到一个 ,这也是linux中常见的一种网络结构。桥接的形式

sudo docker network ls



对于test1 来讲,他是通过bridge的方式

sudo docker inspect test1



ip a

这个机器有5个网路,除了lo,eth0,eth1,docker0,veth8765ce0@if5,上节课讲过veth其实是连接了2个networknamespace,veth8765ce0@if5是负责连接docker0上边的,容器test1里面也应该有个和veth连接的。



sudo docker exec test1 ip a

eth0@if6 和外边的veth8765ce0@if5 其实是一对。



查看他们的关系

sudo yum install -y bridge-utils
#安装后可以运行brctl这个命令了
brctl




brctl show

因为目前就一个test1的桥接,所以就显示一个。



sudo docker run -d --name test2 busybox /bin/sh -c "while true; do sleep 3600;done"
brctl show
sudo docker network inspect bridge
ip a

多创建了容器,其实多了一对veth,容器内多了veth,宿主内也增加了veth,其实就类似一个线,他们互相连接。





test1 和test2 之前通过docker0,docker0 类似test1和test2之前的路由器,docker0 在通过nat的eth0连接互联网



PS:主要理解容器之前如何的互相访问,容器和外边的世界如何通信。

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表