首页 > 其他 > 详细

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

时间:2018-08-20 18:46:02      阅读:214      评论:0      收藏:0      [点我收藏+]

>原创文章,欢迎转载。转载请注明:转载自IT人故事会,谢谢!
>原文链接地址:『中级篇』 Docker Bridge详解(26)

上节主要学习了network-namespace,并创建了network-namespace,并把2个network-namespace连接在一起,我们也演示了创建一个容器test1和test2,其实在创建容器的同时也创建了对应的一个network-namespace,因为对应的一个容器他有自己的独立网络空间。test1通过exec ip a的方式查看对应的ip,和test2 通过exec ip a的方式查看对应的ip。他们之前是互相可以ping通的。

到底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中常见的一种网络结构。桥接的形式

    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:主要理解容器之前如何的互相访问,容器和外边的世界如何通信。


往期精彩
  1. docker导学(一)
  2. 容器的技术概述(二)
  3. docker的魅力初体验-5分钟安装wordpress不走弯路(三)
  4. docker官网介绍(四)
  5. 如何在mac上安装docker(五)
  6. 如何在window上安装docker(六)
  7. 如何在mac上通过vagrant安装虚拟机(七)
  8. 如何在window上通过vagrant安装虚拟机(八)
  9. docker-Machine的本地使用(九)
  10. docker-Machine的本地使用(十)
  11. 在linux/mac下通过Docker-Machine在阿里云上的使用(11)
  12. docker架构和底层技术(12)
  13. docker Image概述(13)
  14. 手动建立一个base Image(14)
  15. 什么是Container(15)
  16. 构建自己的Docker镜像(16)
  17. Dockerfile详解(17)
  18. 镜像的发布(18)
  19. Dockerfile实战(19)
  20. 容器的操作(20)
  21. Dockerfile实战CMD和ENTRTYPOINT的配合(21)
  22. 容器的资源限制(22)
  23. docker网络(23)
  24. docker学习必会网络基础(24)
  25. Linux网络命名空间(25)

技术分享图片

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

原文:http://blog.51cto.com/12040702/2161754

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!