跳至主要內容

docker-网络

wangdx大约 2 分钟

1. 创建自定义网络

使用 docker network create 命令创建一个自定义网络。你可以指定网络驱动类型(如 bridgeoverlay 等),默认是 bridge

示例:创建一个名为 my-network 的桥接网络

docker network create my-network

可选参数

  • --driver:指定网络驱动类型(如 bridgeoverlay)。
  • --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. 测试容器之间的通信

如果你有多个容器连接到同一个自定义网络,它们可以通过容器名称直接通信。

示例:运行第二个容器并测试通信

  1. 运行第二个容器并连接到 my-network

    docker run -d --name my-container2 --network my-network nginx
    
  2. 进入 my-container 并测试与 my-container2 的通信:

    docker exec -it my-container bash
    
  3. 在容器内使用 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)。

上次编辑于: