『中级篇』 Docker Bridge详解(26)

原创文章,欢迎转载。转载请注明:转载自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

到底docker的网络是如何配置的
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
复制代码
  • 这里的代码紧接上一节,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中常见的一种网络结构。桥接的形式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

image

相关文章
相关标签/搜索