gpt4 book ai didi

docker-compose - Docker 撰写 yml 静态 IP 地址

转载 作者:行者123 更新时间:2023-12-04 16:30:58 25 4
gpt4 key购买 nike

我有这样的 docker-compose.yml (这里不是完整列表):

version: '2'

services:

nginx:
build: ./nginx/
ports:
- 8080:80
links:
- php
volumes_from:
- app
networks:
app_subnet:
ipv4_address: 172.16.1.3

php:
build: ./php/
expose:
- 9000
volumes_from:
- app
networks:
app_subnet:
ipv4_address: 172.16.1.4

networks:
app_subnet:
driver: bridge
ipam:
config:
- subnet: 172.16.1.0/24
gateway: 172.16.1.1

docker-compose up我收到这样的错误:

User specified IP address is supported only when connecting to networks with user configured subnets



所以我用 docker network create --gateway 172.16.1.1 --subnet 172.16.1.0/24 app_subnet 创建子网

但这并不能解决问题,因为 docker-compose 会动态创建名为 dev_app_subnet 的子网。而且我的子网没有被使用 - 我遇到了同样的错误。
这样做的主要目的是为 nginx 服务分配静态 IP - 从 etc/hosts 文件打开我的项目 web url。

最佳答案

[已解决] 找到了解决办法。当指向网络时,我们应该使用标志“external”告诉 compose 网络已经创建并且应该被带到外部(否则它将使用项目前缀动态创建):

networks:
app_subnet:
external: true

因此,在那之后 docker-compose 会将容器附加到现有的 app_subnet在此之前,必须创建子网:
docker network create --gateway 172.16.1.1 --subnet 172.16.1.0/24 app_subnet

关于docker-compose - Docker 撰写 yml 静态 IP 地址,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40082259/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com