如果想要实现两台主机之间相连通信,最直接的办法是找一根网线连起来,
多台的话需要用网线将他们链接再交换机上。 linux中能够起到虚拟交换机的网络设备是网桥birdge, 工作再链路层,
主要是根据mac地址将数据包转发到网桥的不同端口。 docker默认创建docker0网桥,凡是链接再docker0上的docker就可以用它来通信了。 而要用容器链接到docker0上需要用到veth pair的虚拟设备。 veth pair的设备特点是:它被创建出来后总是以两张虚拟网卡(veth peer)的形式成对出现的,从其中一个网卡发出的数据包,可以直接出现再与它对应的另一张网卡上,
哪怕这两张网卡再不同的 network namespace里 所以veth pair常被当做链接不同network namespace的网线一样
当启动一个容器之后进入到容器内部用 ifconfig可以看到
容器内部有一张eth0的网卡,它正是veth pair 设备再容器里的这一端; 再容器里用route查看容器路由,
可以看到凡是再172.17.0.0/16 均会较给主机eth0网卡来处理 而容器的地址是172.17.0.2,属于这个范围内 来到宿主机查看另一端:
ifconfig可以看到有一个虚拟网卡名字比较长,用 brctl show可以看到这张网卡被插在了
docker0网桥上 所以容器和宿主机是通过docker0网桥来进行交互的,不同容器之间也是,因为虚拟网卡都是插在docker0上的

最新文章

  1. 【CronExpression表达式详解和案例】
  2. MYSQL 的一些文件及说明
  3. 泛函编程(19)-泛函库设计-Parallelism In Action
  4. Android下载文件到SD卡
  5. [转载]Dotfuscator Professional Edition 4.9.7500.9484 混淆工具破解版+使用教程
  6. linux安装composer
  7. 使用vs中的工具进行架构比较
  8. (中等) POJ 3034 Whac-a-Mole,DP。
  9. C# 如何隐藏或显示工作表中的网格线
  10. idea快捷键(后续更新)
  11. 【sping揭秘】22、事务管理
  12. char *直接赋值和strcpy之间什么区别
  13. 删除sonarqube仪表盘上无用的工程
  14. Quick and Easy Installation of Oracle Database 12c on Oracle Linux in Oracle VM VirtualBox
  15. HDU 1019 Least Common Multiple 数学题解
  16. QT:QObject 简单介绍
  17. 表达式树(Expression Tree)
  18. 除了C语言,C++······竟然还有Z语言?
  19. 查看oracle数据库日志存放位置
  20. ISO7816 (part 1-3) asynchronous smartcard information

热门文章

  1. 【剑指Offer】链表中倒数第k个节点 解题报告(Python)
  2. oracle中connect by prior的使用
  3. Java+Eclipse+MySQL+Swing实现学生会考成绩管理系统(免费完整项目)
  4. MySQL高级查询与编程笔记 • 【第5章 常见数据库对象】
  5. Android物联网应用程序开发(智慧城市)—— 购物信息的存储界面开发
  6. Gradle sync failed (3 s 402 ms) - Android Studio问题解决方法
  7. 使用.NET 6开发TodoList应用(19)——处理OPTION和HEAD请求
  8. CSS基础 常见的元素显示模式
  9. python 字典 分别根据值或键进行排序的方法
  10. HTTP 状态码整理