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网络

 

docker知识5---docker网络

上一篇:__new__魔术方法


下一篇:OMP: Error #15: Initializing libiomp5md.dll, but found libiomp5md.dll already initialized问题解决