原创文章,欢迎转载。转载请注明:转载自IT人故事会,谢谢!
原文连接地址:『中级篇』 Docker Bridge详解(26)node
上节主要学习了network-namespace,并建立了network-namespace,并把2个network-namespace链接在一块儿,咱们也演示了建立一个容器test1和test2,其实在建立容器的同时也建立了对应的一个network-namespace,由于对应的一个容器他有本身的独立网络空间。test1经过exec ip a的方式查看对应的ip,和test2 经过exec ip a的方式查看对应的ip。他们以前是互相能够ping通的。linux
sudo service docker restart
sudo docker container start test1
sudo docker container start test2
sudo docker docker exec -it test1 /bin/sh
ping www.baidu.com
复制代码
sudo docker ps
sudo docker stop test2
sudo docker rm test2
sudo docker ps
复制代码
能够看到一个 ,这也是linux中常见的一种网络结构。桥接的形式docker
sudo docker network ls
复制代码
对于test1 来说,他是经过bridge的方式bash
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的桥接,因此就显示一个。ui
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,其实就相似一个线,他们互相链接。spa
![]()
test1 和test2 以前经过docker0,docker0 相似test1和test2以前的路由器,docker0 在经过nat的eth0链接互联网vagrant
PS:主要理解容器以前如何的互相访问,容器和外边的世界如何通讯。3d