19 Docker网络之自定义网络的创建与使用

在上一篇文章中,我们详细讲解了Docker中的桥接网络和主机网络。这两种网络模式都是Docker在容器间通信时提供的基本功能。今天,我们将深入探讨一个更灵活的网络管理选项——自定义网络的创建与使用。

一、为何需要自定义网络?

在某些情况下,容器间的通信需求会变得更加复杂,尤其是在微服务架构中。自定义网络提供了以下优点:

  1. 隔离性:自定义网络可以让不同的服务或应用分开,不同自定义网络之间的容器无法相互通信。
  2. 名称解析:容器在自定义网络中可以通过服务名称来互相通信,无需使用IP地址。
  3. 灵活性:可以根据需要调整网络的配置,如子网段、网关等。

二、创建自定义网络

1. 创建网络

使用 docker network create 命令可以创建一个新的自定义网络。以下是创建一个名为 my_custom_network 的桥接网络的命令:

1
docker network create my_custom_network

2. 查看网络

我们可以使用 docker network ls 来列出所有网络,确保我们的网络已经创建成功:

1
docker network ls

输出将类似于以下内容:

1
2
3
4
5
NETWORK ID          NAME                DRIVER              SCOPE
f4d10e3a3cbd bridge bridge local
c391b5ee9e01 host host local
f1a1e630b025 none null local
a1b2c3d4e5f6 my_custom_network bridge local

可以看到,我们的新网络 my_custom_network 已经成功创建。

三、使用自定义网络

1. 启动容器并连接至自定义网络

我们可以在启动容器时指定使用自定义网络。例如,启动一个 Ubuntu 容器并连接到 my_custom_network

1
docker run -d --name my_container_1 --network my_custom_network ubuntu sleep infinity

然后,我们再启动第二个容器,并连接同一自定义网络:

1
docker run -d --name my_container_2 --network my_custom_network ubuntu sleep infinity

2. 容器间的通信

现在,我们有两个容器 my_container_1my_container_2 在同一个自定义网络中。我们可以通过容器名称相互通信。首先,进入第一个容器:

1
docker exec -it my_container_1 bash

在容器内,我们可以使用 ping 命令来测试与另一个容器的通信:

1
ping my_container_2

如果一切正常,你将看到ping的响应,这证明了两个容器间可以成功通信。

3. 网络配置选项

我们在创建网络时可以指定一些额外的选项,比如IP地址段和网关。以下是创建带有特定子网和网关的自定义网络的命令:

1
docker network create --subnet=192.168.1.0/24 --gateway=192.168.1.1 my_custom_network_v2

通过上述命令,我们创建了一个子网为 192.168.1.0/24,网关为 192.168.1.1 的自定义网络。

四、总结

自定义网络在Docker中为容器之间的通信提供了更高的灵活性和隔离性。在本文中,我们学习了如何创建和使用自定义网络,以及如何在这个网络中启动并让容器互相通信。接下来,我们将探讨Docker数据管理中的数据卷,希望大家继续关注。

我们希望通过实践和示例,帮助您更深入地理解Docker网络的概念,为将来的容器化应用打下坚实的基础。使用自定义网络,您可以更好地管理微服务架构的复杂性,享受Docker带来的便利。

希望本篇教程对您有所帮助!如果您有任何问题或建议,请随时与我们交流。

19 Docker网络之自定义网络的创建与使用

https://zglg.work/docker-zero/19/

作者

AI免费学习网(郭震)

发布于

2024-08-15

更新于

2024-08-16

许可协议

分享转发

交流

更多教程加公众号

更多教程加公众号

加入星球获取PDF

加入星球获取PDF

打卡评论