docker知识5---docker网络

docker容器网络
  在顶层设计中,Docker 网络架构由 3 个主要部分构成:CNM、Libnetwork 和驱动。
    1)CNM 是设计标准。在 CNM 中,规定了 Docker 网络架构的基础组成要素。
    2)Libnetwork 是 CNM 的具体实现,并且被 Docker 采用,Libnetwork 通过 Go 语言编写,并实现了 CNM 中列举的核心组件。
    3)驱动通过实现特定网络拓扑的方式来拓展该模型的能力。

  network namespace 是实现网络虚拟化的重要功能,它能创建多个隔离的网络空间,它们有独自的网络栈信息。不管是虚拟机还是容器,运行的时候仿佛自己就在独立的网络中。
  有了不同 network namespace 之后,也就有了网络的隔离,但是如果它们之间没有办法通信,也没有实际用处。要把两个网络连接起来,linux 提供了 veth pair 。可以把 veth pair 当做是双向的 pipe(管道),从一个方向发送的网络数据,可以直接被另外一端接收到;或者也可以想象成两个 namespace 直接通过一个特殊的虚拟网卡连接起来,可以直接通信。

docker run -d --name test1 busybox /bin/sh -c "while true;do sleep 3600;done"
docker exec -it test1 ip a
docker run -d --name test2 busybox /bin/sh -c "while true;do sleep 3600;done"
docker exec -it test2 ip a
docker exec -it test1 /bin/sh
ping 172.17.0.3 -c 3
exit 
ip a

docker知识5---docker网络

 

上一篇:linux Shell脚本截取字符串


下一篇:在Web.Config文件中使用configSource,避免动态修改web.config导致asp.net重启(另添加一个Config文件用于管理用户数据)