由于Docker的容器彼此之间是逻辑隔离的,所以,在安装Docker时会为在容器创建隔离的网络环境。在该隔离的网络模式环境下,运行在宿主机上的各个容器具有完全独立的网络栈,并且Docker容器的网络环境与宿主机相互隔离。通过配置使用Docker的不同网络模式,可以使容器共享宿主机的网络命名空间,也可以实现容器间的相互访问。
视频讲解如下:
Docker一共提供了4种网络模式:bridge、container、host和none。下表对比了这4种通信模式的特点。
在none模式下的容器具有独立的网络命名空间,但不包含任何网络配置,只能通过Local Loopback网卡进行通信。即容器只能使用localhost或者127.0.0.1。none模式具有最少的网络模式,需要手动进行网络的配置,例如使用pipwork指定容器的IP地址等。
下面使用none模式来创建一个容器。
docker run -it --network=none busybox /bin/sh
由于none模式不包含任何的网络配置,在其网络配置信息中就只包含127.0.0.1的地址,如下图所示。
由于None网络模式是一种特殊的网络配置,它会禁用容器的网络功能。使用这种网络模式的容器不会与任何其他容器或外部网络互联,也不会获得自己的IP地址。None网络模式的应用场景通常包括:
- 当不希望容器接收任何网络流量时,可以使用None网络模式。
- 当想要在容器内运行某些特殊的服务,这些服务不需要网络连接,例如某些后台任务或守护进程。