侧边栏壁纸
博主头像
一杯苦咖啡 博主等级

越是宣传的,越是有坑等你填补,越是禁止的,越是不想让你分享的,做一个能独立思考的人

  • 累计撰写 31 篇文章
  • 累计创建 3 个标签
  • 累计收到 4 条评论

目 录CONTENT

文章目录

如何使不同的docker容器在同一局域网(compose.yaml)

Administrator
2024-07-29 / 0 评论 / 0 点赞 / 51 阅读 / 0 字 / 正在检测是否收录...

环境:如果server1server2server3不在同一个docker-compose.yml文件中,但您希望它们在同一个子网内运行,您需要手动创建一个共享网络,并在各自的docker-compose.yml文件中引用这个共享网络。

1. 创建共享网络

首先,手动创建一个共享网络:

docker network create --subnet=172.16.10.0/24 my_custom_network

2. 更新每个docker-compose.yml文件

接下来,您需要更新每个docker-compose.yml文件以引用这个共享网络。

server1 的 docker-compose.yml:

version: '3'
services:
  server1:
    image: your_image1
    networks:
      - my_custom_network

networks:
  my_custom_network:
    external: true

server2 的 docker-compose.yml:

version: '3'
services:
  server2:
    image: your_image2
    networks:
      - my_custom_network

networks:
  my_custom_network:
    external: true

server3 的 docker-compose.yml:

version: '3'
services:
  server3:
    image: your_image3
    networks:
      - my_custom_network

networks:
  my_custom_network:
    external: true

配置解释

  • networks: my_custom_network: external: true:这部分配置指定了服务应该使用一个外部预先创建的网络,即my_custom_network

启动容器

在每个服务的目录中分别运行以下命令启动容器:

docker-compose up -d

这样,所有服务都会连接到my_custom_network,并在相同的子网172.16.10.0/24内运行。

验证网络设置

您可以使用以下命令验证网络配置和连接的容器:

docker network inspect my_custom_network

这会显示网络的详细信息,包括所有连接到该网络的容器及其IP地址。

通过这种方式,即使各个服务在不同的docker-compose.yml文件中定义,它们仍然可以共享同一个子网并实现互相通信。

0

评论区