2022-11-16 11:33:50
Docker的四种网络模式分别是host模式、container模式、none模式和bridge模式,具体介绍如下:
host模式:启动容器时若使用host模式,容器不会获得独立的Network Namespace,而是与宿主机共用一个。容器不会虚拟出自己的网卡、配置IP等,而是直接使用宿主机的IP和端口。不过,容器在文件系统、进程列表等方面仍与宿主机隔离。例如,执行命令docker run -it --rm --net=host centos_with_net bash,容器就会以host模式运行,与宿主机共享网络命名空间。
container模式:新创建的容器与已存在的容器共享一个Network Namespace,而非与宿主机共享。新容器不会创建自己的网卡、配置IP,而是与指定容器共享IP、端口范围等。两个容器在网络方面相互关联,但在文件系统、进程列表等方面仍保持隔离。它们可通过lo网卡设备通信。使用方式为docker run -it --rm --net=container:container_id/container_name。
none模式:使用none模式时,Docker容器拥有自己的Network Namespace,但Docker不会为容器进行任何网络配置。这意味着容器没有网卡、IP、路由等信息。若需使用网络功能,需手动为容器添加网卡、配置IP等。
bridge模式:这是Docker默认的网络设置。此模式会为每个容器分配独立的Network Namespace、设置IP等,并将同一主机上的Docker容器连接到一个虚拟网桥上。类似于Vmware的nat网络模式,同一宿主机上的所有容器处于同一网段,可相互通信。使用--net=bridge指定,若不指定,默认即为该模式。