网络

四种网络模式

  • bridge:Docker 默认方式,网桥模式

创建虚拟网桥 docker0,新建的容器会自动桥接到该接口下,附加在其上的任何网卡之间都能自动转发数据包
创建一对虚拟设备接口 veth pair,将其中一个接口设置为容器的 eth0 接口(容器网卡),另一个接口放置在宿主机命名空间中,以 vethxxx 这样的名字命名,宿主机上的所有容器都连接到这个内部网络上
分配一个和网桥 docker0在同网段的IP地址给容器,并设置 docker0 的 IP 地址为容器的默认网关
veth是什么
VETH (virtual Ethernet) 设备总是成对出现,彼此相连。 一个设备从协议栈读取数据后,会将数据发送到另一个设备上去。
VETH 可以用于两个 namespace 间的网络通信。如果 VETH 设备对中有一个设备不可用,则整个链路也不可用

  • none:容器没有网络栈
  • container:使用其它容器的网络栈,Docker 容器会加入其它容器的 network namespace —network container:(ContainerName)
  • host:表示容器使用 Host 的网络,没有自己独立的网络栈。容器可以完全访问 Host 的网络,不安全 —network host

    存储驱动

    Docker 存储驱动是 Docker 的核心组件,它是 Docker 实现分层镜像的基础
    1、device mapper(DM):性能和稳定性存在问题,不推荐生产环境使用,在 centos6 中,默认的存储驱动就是 DM
    2、btrfs:社区实现了 btrfs driver,稳定性和性能存在问题
    3、overlayfs:内核 3.8 overlayfs 进入主线,性能和稳定性优异,第一选择