docker(十一)docker的网络模式

145 阅读3分钟

Docker现阶段的最后一部分,docker的网络模式,这个还是很重要的。

首先,我们先来学习一下,如何查看当前运行的容器使用的是什么网络模式。

查看当前正在运行的容器:

docker ps

1.jpg

使用命令查看容器信息

docker inspect b393216a318e

信息比较多,直接看最下方的就可以,如下图所示:

2.jpg

 

Docker 提供了四种主要的网络模式,用于管理容器之间的网络连接

我们来查看一下docker先有得网络模式:

docker network ls

3.jpg

如上面所示,其实是有三种网络模式,docker_default和bridge是一个模式。

 

查看一下当前宿主机的网卡情况

ip addr

4.jpg

这里需要解释一下,创建容器只要不配置网络模式,创建一个容器,就会多一块桥接模式的网卡(bridge),显然上方截图中显示我们有四个容器正在运行

 

一:Bridge 网络模式(默认)

Bridge 网络模式是 Docker 的默认网络模式。每个容器连接到一个虚拟的桥接网络,容器之间可以通过 IP 地址相互通信。

特点:

·  容器之间通过桥接网络通信。

·  容器可以通过主机的端口映射访问外部网络。

示例:

docker run -d --name my-container --network bridge nginx

 

二:Host 网络模式

Host 网络模式下,容器直接使用主机的网络栈。容器中的服务将使用主机的 IP 地址和端口。

特点:

·  容器与主机共享网络栈。

·  容器中的服务直接使用主机的 IP 地址和端口。

示例:

docker run -d --name my-container --network host nginx

 

三:None 网络模式

None 网络模式下,容器没有网络连接。容器只有一个回环接口(lo),没有其他网络接口。

特点:

·  容器没有网络连接。

·  适用于需要完全隔离网络的场景。

示例:

docker run -d --name my-container --network none nginx

 

四:Container 网络模式

Container 网络模式下,容器与另一个容器共享网络栈。两个容器将共享同一个网络命名空间。

特点:

·  容器与指定的另一个容器共享网络栈。

·  容器之间可以通过 localhost 进行通信。

示例:

假设已经有一个名为 existing-container 的容器:

docker run -d --name my-container --network container:existing-container nginx

 

五:小结

1.       Bridge 网络模式:默认模式,适用于大多数场景。

2.       Host 网络模式:适用于需要高性能网络通信的场景。

3.       None 网络模式:适用于需要完全隔离网络的场景。

4.       Container 网络模式:适用于需要多个容器共享网络栈的场景。

选择合适的网络模式可以帮助你更好地管理和优化容器之间的网络通信。

 

以上大概就是docker网络模式的基本知识。

 

有好的建议,请在下方输入你的评论。