docker-网络
大约 2 分钟
1. 创建自定义网络
使用 docker network create
命令创建一个自定义网络。你可以指定网络驱动类型(如 bridge
、overlay
等),默认是 bridge
。
示例:创建一个名为 my-network
的桥接网络
docker network create my-network
可选参数
--driver
:指定网络驱动类型(如bridge
、overlay
)。--subnet
:指定子网(如172.18.0.0/16
)。--gateway
:指定网关(如172.18.0.1
)。
示例:创建一个带有子网和网关的自定义网络
docker network create \
--driver bridge \
--subnet 172.18.0.0/16 \
--gateway 172.18.0.1 \
my-network
2. 查看自定义网络
使用以下命令查看已创建的网络:
docker network ls
你会看到类似以下的输出:
NETWORK ID NAME DRIVER SCOPE
abc123456789 my-network bridge local
3. 将容器连接到自定义网络
在运行容器时,使用 --network
参数将容器连接到自定义网络。
示例:运行一个容器并连接到 my-network
docker run -d --name my-container --network my-network nginx
示例:将已运行的容器连接到自定义网络
docker network connect my-network my-container
4. 测试容器之间的通信
如果你有多个容器连接到同一个自定义网络,它们可以通过容器名称直接通信。
示例:运行第二个容器并测试通信
运行第二个容器并连接到
my-network
:docker run -d --name my-container2 --network my-network nginx
进入
my-container
并测试与my-container2
的通信:docker exec -it my-container bash
在容器内使用
ping
命令测试:ping my-container2
如果配置正确,你应该能够成功 ping 通。
5. 查看网络详情
使用以下命令查看自定义网络的详细信息:
docker network inspect my-network
你会看到网络的配置、连接的容器等信息。
6. 断开容器与网络的连接
如果需要将容器从自定义网络中移除,可以使用以下命令:
docker network disconnect my-network my-container
7. 删除自定义网络
如果不再需要自定义网络,可以将其删除:
docker network rm my-network
注意:删除网络前,确保没有容器连接到该网络。
总结
通过自定义网络,你可以更好地管理 Docker 容器的网络环境,实现容器之间的隔离和通信。常用的网络驱动是 bridge
,适合单机环境;如果需要跨主机的容器通信,可以使用 overlay
驱动(适用于 Docker Swarm 或 Kubernetes)。