docker网络模式详解

本文主要讲解Docker4种常见的网络模式。

Docker服务启动之后,默认会创建一个docker0网桥,Docker就是通过这个网络设备为容器提供各种网络服务的,docker0在内核层连通了其他的物理或虚拟网卡,这就将所有容器和本地主机都放到同一个物理网络。

docker网络模式详解

docker run启动一个容器时,可以使用--net选项来指定容器的网络模式,如下:

(1)、bridge模式:使用--net=bridge指定,这是Docker启动容器默认使用的网络模式;

(2)、host模式:使用--net=host指定;

(3)、none模式:使用--net=none指定;

(4)、container模式:使用--net=container-id or container-name指定。

下面分别讲解以上这四种网络模式

1、host模式

启动容器时使用host模式,那么这个容器将不会获得一个独立的Network Namespace,而是和宿主机共享一个Network Namespace,容器不会虚拟出自己的网卡、配置自己的IP,而是使用宿主机的IP和端口。容器的其他方面,如文件系统、进程列表还是和宿主机隔离的。

host模式如下图所示:

docker网络模式详解

举例说明:

首先查看宿主机的网络配置

docker网络模式详解

使用host模式启动一个容器,然后查看容器的网络配置:

docker网络模式详解

docker网络模式详解