Docker网络之一:Docker 默认网络

       当 docker 启动时,会在主机上创建一个 docker0 的虚拟网卡。他随机挑选 RFC1918 私有网络中的一段地址给 docker0 。比如 172.17.0.1/16,16 位掩码的网段可以拥有 65534 个地址可以使用,这对主机和容器来说应该足够了。

      docker0  不是普通的网卡,他是桥接到其他网卡的虚拟网卡,容器使用它来和主机相互通信。当创建一个 docker 容器的时候,它就创建了一个对接口,当数据包发送到一个接口时,另外一个接口也可以收到相同的数据包,它们是绑在一起的一对孪生接口。这对接口在容器中那一端的的名字是 eth0 ,宿主主机端的会指定一个唯一的名字,比如 vethAQI2QT 这样的名字,这种接口名字不再主机的命名空间中。所有的 veth* 的接口都会桥接到 docker0 ,这样 docker 就创建了在主机和所有容器之间一个虚拟共享网络。

Docker网络之一:Docker 默认网络_第1张图片

Docker默认网络

Docker安装后,默认会创建下面三种网络类型:

[root@172 /]# docker network ls
NETWORK ID          NAME                DRIVER              SCOPE
7bae40b7ba3b        bridge              bridge              local
a76157f2257d        host                host                local
c8e7302eb8c8        none                null                local


启动 Docker的时候,用 --network 参数,可以指定网络类型,如:

 [root@172 /]# docker run -itd --name test1 --network bridge --ip 172.17.0.10 centos:latest /bin/bash 


1、bridge:桥接网络

默认情况下启动的Docker容器,都是使用 bridge,Docker安装时创建的桥接网络,每次Docker容器重启时,会按照顺序获取对应的IP地址,这个就导致重启下,Docker的IP地址就变了

2、none:无指定网络

使用 --network=none,docker 容器就不会分配局域网的IP。

3、host: 主机网络

使用 --network=host,此时,Docker 容器的网络会附属在主机上,两者是互通的。

例如,在容器中运行一个Web服务,监听8080端口,则主机的8080端口就会自动映射到容器中。


原文链接:http://www.jb51.net/article/118396.htm

你可能感兴趣的:(Docker)