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


image

原创声明,本文系作者授权云+社区发表,未经许可,不得转载。

如有侵权,请联系 yunjia_community@tencent.com 删除。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏大魏分享(微信公众号:david-share)

厉害了word哥 | 从两张图看红帽最高深的武功 |OpenShift

世上的高手 世上高手大约有两种: 第一种如下图这为老先生,一辈子纵横江湖数十载,所学武功实用有效,招数简明而力道雄厚,善于“简单粗暴”迅速解决问题。在老爷子的心...

53070
来自专栏封碎

Android NFC简介 博客分类: Android android nfc 近场通信

近场通讯 (Near Filed Communication) 技术是一种近距离的高频无线通信技术, 通常距离是4 厘米或更短。 NFC 工作频率是 ...

24320
来自专栏JadePeng的技术博客

google gcr.io、k8s.gcr.io 国内镜像

https://github.com/anjia0532/gcr.io_mirror

3.5K30
来自专栏一个会写诗的程序员的博客

十分钟带你理解Kubernetes核心概念

本文将会简单介绍Kubernetes的核心概念。因为这些定义可以在Kubernetes的文档中找到,所以文章也会避免用大段的枯燥的文字介绍。相反,我们会使用一些...

13730
来自专栏同步博客

Docker之初识(一)

  今年四月份公司逐步改用docker容器来部署应用,当时自己刚踏出学校大门,平时开发都是环境都是早已安装好,因此一直没怎么了解Docker这玩意。公司里各位开...

11320
来自专栏魏艾斯博客www.vpsss.net

如何下载安装使用 SSH 软件

29150
来自专栏老付的网络博客

docker 入门与安装

Docker是一个开源的引擎,可以轻松的为任何应用创建一个轻量级的、可移植的、自给自足的容器。开发者在笔记本上编译测试通过的容器可以批量地在生产环境中部署,包括...

11010
来自专栏容器化

容器化分布式日志组件ExceptionLess的Angular前端UI

29140
来自专栏云计算

​在 OS X 系统上快速上手 Docker 技术 (对 Docker 还不够熟悉? 从这里开始吧!)

原文地址:https://dzone.com/articles/dockerosx-quickstart-not

24480
来自专栏coding

docker初体验

20310

扫码关注云+社区

领取腾讯云代金券