docker自定义桥接网络

Docker 提供了几种不同的网络模式,除了默认的桥接网络外,Docker 允许用户创建和管理自定义桥接网络。在 Docker 中,可以通过自定义桥接网络来实现容器之间的通信和隔离。自定义桥接网络允许用户定义子网、网关以及其他网络选项,以更好地管理容器的网络配置。

创建自定义桥接网络
使用 docker network create 命令创建自定义桥接网络。可以指定网络的名称、子网、网关等参数。

docker network create \
  --driver bridge \
  --subnet 192.168.100.0/24 \
  --gateway 192.168.100.1 \
  my_custom_bridge
  • docker network create:创建 Docker 网络的命令。
  • –driver bridge:指定网络驱动为桥接模式。
  • –subnet 192.168.100.0/24:指定网络的子网范围。
  • –gateway 192.168.100.1:指定网络的网关地址。
  • my_custom_bridge:自定义网络的名称。

运行容器连接到自定义桥接网络
创建自定义桥接网络后,可以通过 --network 参数将容器连接到该网络。

docker run -d \
  --name container1 \
  --network my_custom_bridge \
  nginx:alpine
  • -d:指定容器在后台运行。
  • –name container1:给容器指定一个名称。
  • –network my_custom_bridge:将容器连接到名为 my_custom_bridge 的自定义桥接网络。
  • nginx:alpine:使用 nginx 镜像的 alpine 版本作为容器的基础镜像。

多个容器连接到同一个自定义桥接网络

docker run -d \
  --name container2 \
  --network my_custom_bridge \
  nginx:alpine
  • container1 和 container2 都连接到了 my_custom_bridge 自定义桥接网络。这样,它们可以通过容器名称相互访问,也可以通过自定义桥接网络的 IP 地址进行通信。

查看自定义桥接网络信息
使用 docker network inspect 命令可以查看自定义桥接网络的详细信息, 包括子网、网关、已连接的容器等信息。

docker network inspect my_custom_bridge
### 使用 Docker桥接网络连接容器 #### 创建自定义桥接网络 默认情况下,Docker 容器会自动加入名为 `bridge` 的默认网桥。然而,为了更好地控制和隔离容器间的通信,建议创建自定义桥接网络。 ```bash docker network create my_bridge_network ``` 这行命令将会创建一个新的自定义桥接网络[^2]。 #### 启动容器并将其附加到指定网络 当启动新的容器时,可以使用 `--network` 参数来指定要使用的网络名称: ```bash docker run -d --name container1 --network=my_bridge_network nginx docker run -d --name container2 --network=my_bridge_network redis ``` 上述两条指令分别启动了一个 Nginx 和 Redis 容器,并将它们都连接到了之前创建的 `my_bridge_network` 上。 #### 验证容器间连通性 一旦两个或多个容器被添加到同一个用户定义的桥接网络中,这些容器就可以通过彼此的服务名(即容器名字)相互访问。例如,在 `container1` 中可以通过 ping 或 curl 来测试与 `container2` 的连通性: ```bash docker exec container1 ping container2 ``` 如果一切正常配置无误,则应该能够成功解析目标主机名并返回 ICMP Echo Reply 消息。 #### 查看当前存在的所有网络及其详情 有时可能需要查看现有的网络列表以及各个网络上的成员情况: ```bash docker network ls docker inspect my_bridge_network ``` 第一条命令列出了所有的 Docker 网络;第二条则提供了关于特定网络更详尽的信息,包括已连接的容器等细节。 #### 清理不再使用的资源 对于那些已经没有任何活动容器依赖但仍占用系统资源的老化网络,应当及时清理掉以免浪费空间: ```bash docker network rm my_first_network docker network prune ``` 前者移除具体命名的闲置网络,后者则是批量删除所有未被任何容器使用的孤立网络[^1]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值