简介
在这个实验中,你将学习如何使用 docker network disconnect
命令管理容器网络连接。我们将首先创建一个自定义网络,并运行一个连接到该网络的容器。
接下来,你将了解如何将一个现有容器连接到另一个额外的网络。最后,你将学习如何将容器从特定网络断开连接,并验证断开操作是否成功。这个实践练习将为你提供控制容器网络连接性的实际经验。
在这个实验中,你将学习如何使用 docker network disconnect
命令管理容器网络连接。我们将首先创建一个自定义网络,并运行一个连接到该网络的容器。
接下来,你将了解如何将一个现有容器连接到另一个额外的网络。最后,你将学习如何将容器从特定网络断开连接,并验证断开操作是否成功。这个实践练习将为你提供控制容器网络连接性的实际经验。
在这一步中,你将学习如何创建一个自定义的 Docker 网络,并运行一个连接到该网络的容器。默认情况下,Docker 容器会连接到 bridge
网络,但创建自定义网络可以更好地实现容器之间的隔离和通信控制。
首先,让我们创建一个名为 my-network
的新桥接网络。
docker network create my-network
你应该会在输出中看到新创建网络的 ID。
接下来,我们将从 Docker Hub 拉取 nginx
镜像。这个镜像将用于创建我们的容器。
docker pull nginx
此命令会将 nginx
镜像下载到你的本地机器。
现在,让我们运行一个 Nginx 容器,并将其连接到我们刚刚创建的 my-network
。我们将把这个容器命名为 my-nginx
。
docker run -d --name my-nginx --network my-network nginx
让我们来拆解一下这个命令:
docker run
:此命令用于运行一个容器。-d
:这个标志表示以分离模式运行容器,即容器在后台运行。--name my-nginx
:这将容器命名为 my-nginx
。--network my-network
:这将容器连接到我们创建的 my-network
。nginx
:这是用于创建容器的镜像。运行该命令后,Docker 将启动 my-nginx
容器,并将其连接到 my-network
。
在上一步中,我们创建了一个网络并运行了一个连接到该网络的容器。在这一步中,我们将演示如何将一个 正在运行的 容器连接到 另一个 网络。如果你需要一个容器与不同网络上的其他容器进行通信,这将非常有用。
首先,让我们创建另一个名为 another-network
的新桥接网络。
docker network create another-network
你应该会在输出中看到这个新网络的 ID。
现在,我们将把现有的 my-nginx
容器连接到这个新的 another-network
。
docker network connect another-network my-nginx
此命令将指定的容器 (my-nginx
) 连接到指定的网络 (another-network
)。现在,该容器将在 my-network
和 another-network
这两个网络上都有网络接口。
为了验证容器是否已连接到这两个网络,我们可以检查容器的网络设置。
docker inspect my-nginx
在输出中查找 "Networks"
部分。你应该会看到 my-network
和 another-network
的条目,这表明容器已成功连接到这两个网络。
在上一步中,我们将 my-nginx
容器连接到了另一个网络 another-network
。在这一步中,你将学习如何将容器从特定网络中断开连接。当你不再需要容器成为某个特定网络的一部分时,这会很有用。
要将 my-nginx
容器从 another-network
中断开连接,我们使用 docker network disconnect
命令。
docker network disconnect another-network my-nginx
此命令将网络名称 (another-network
) 和容器名称 (my-nginx
) 作为参数。
执行此命令后,容器将从指定的网络中移除。除非其他容器也在共享网络上,否则该容器将无法再与 another-network
上的其他容器进行通信。
为了确认容器已断开连接,我们可以再次检查容器的网络设置。
docker inspect my-nginx
查看输出中的 "Networks"
部分。现在你应该只会看到列出的 my-network
,而 another-network
应该已不存在。这证实了容器已成功从 another-network
中断开连接。
在上一步中,我们将 my-nginx
容器从 another-network
中断开了连接。在这一步中,我们将进行最终验证,以确保该容器确实不再连接到 another-network
。
我们可以再次使用 docker inspect
命令来检查 my-nginx
容器的网络配置。
docker inspect my-nginx
查看此命令的输出。具体来说,查找 "Networks"
部分。你应该只会在 "Networks"
下列出 my-network
。此列表中没有 another-network
就证实了容器已成功从该网络中断开连接。
这一步是对上一步操作的确认,同时也强化了你对如何检查 Docker 容器网络状态的理解。
在本次实验中,你学习了如何管理 Docker 容器的网络连接。首先,你使用 docker run --network
命令创建了一个自定义桥接网络,并直接将一个容器连接到该网络。这展示了容器在创建时如何连接到特定网络。
随后,你探索了如何使用 docker network connect
命令将一个正在运行的容器连接到另一个网络。最后,你学习了如何使用 docker network disconnect
命令将容器从网络中断开连接,并验证了断开操作,这体现了在容器创建后管理其网络成员关系的灵活性。