初学者 Docker 容器网络配置,不容错过

什么是 Docker 容器网络?

在 Docker 中,容器网络是一种在主机内创建虚拟网络的方式。每个容器都可以加入一个或多个网络,并在其中运行自己的服务。这种网络可以是私有的,也可以是公共的。所有在这个网络上的容器可以互相通信,就像在同一台物理机器上运行的不同进程一样。

Docker 容器网络模式

Docker 容器网络模式分为四种:

  • Bridge 模式(默认模式)
  • Host 模式
  • None 模式
  • Container 模式

Bridge 模式

Bridge 模式是 Docker 容器默认的网络模式。在 Bridge 模式下,Docker 会为每个新创建的容器自动创建一个虚拟网桥,然后将容器连接到这个网桥上。在这个网络中,每个容器都有一个自己的 IP 地址,并且可以互相通信。

创建自己的 Bridge 网络

如果需要创建自己的 Bridge 网络,可以使用如下命令:

这个命令会创建一个名为 my-bridge-network 的 Bridge 网络。

使用自己的 Bridge 网络

如果需要使用自己的 Bridge 网络,可以在运行容器时使用下面的命令:

Host 模式

在 Host 模式下,Docker 容器会和宿主机共享网络。容器将会直接使用宿主机的 IP 地址和端口,而不是在它们自己的虚拟网络中使用 IP 地址。

None 模式

在 None 模式下,Docker 容器不会加入任何网络。这意味着容器将无法通过网络与其他容器或宿主机通信。这个模式适用于不需要网络连接的容器。

Container 模式

在 Container 模式下,Docker 容器将会和另一个容器共享网络。这意味着它们可以互相通信,就像在同一台物理机器上运行的不同进程一样。

Docker 容器网络配置举例

我们可以通过一个简单的例子来了解如何配置 Docker 容器网络。

我们将启动两个不同的容器,并将它们加入同一个网络。然后通过浏览器访问其中一个容器的服务,就能从另一个容器中访问这个服务。

步骤 1:创建自己的 Bridge 网络

首先,我们需要创建自己的 Bridge 网络:

步骤 2:启动容器

我们将启动两个不同的容器:

这些命令将会启动两个容器,并将它们加入名为 my-bridge-network 的 Bridge 网络中。

  • container1 容器将会暴露在本地主机的 8080 端口上,对应 container1 容器内的 80 端口。
  • container2 容器不会暴露在本地主机的任何端口上。

步骤 3:测试网络连接

我们可以通过浏览器访问容器1的服务,在地址栏中输入:http://localhost:8080

然后我们可以在容器2中使用 curl 命令查看它是否能够访问到此服务:

在这里,我们使用了 docker exec 命令进入到 container2 容器中,并使用 curl 命令访问了 container1 容器中的服务。

总结

通过本文,我们了解了 Docker 容器网络的概念和四种网络模式,并且通过简单的例子来了解了如何配置 Docker 容器网络。希望这篇文章对初学者 Docker 容器网络配置有所帮助。

来源:JavaScript中文网 ,转载请注明来源 本文地址:https://www.javascriptcn.com/post/6534df077d4982a6eba4d3d3


纠错
反馈