gpt4 book ai didi

Docker-Compose 容器 IP 地址和容器名称

转载 作者:行者123 更新时间:2023-12-01 21:43:29 35 4
gpt4 key购买 nike

我的 docker-compose 有两个服务,docker-compose.yml 定义环境变量 ip 地址和容器名称,

 version: '2'

services:
api:
build: ./api/
command: python3 manage.py runserver
volumes:
- ./api:/code
ports:
- "8000:80"
networks:
- dock_net
container_name: con_api

web:
build: ./web/
command: python3 manage.py runserver
volumes:
- ./web:/code
ports:
- "8001:80"
networks:
- dock_net
container_name: con_web
environment:
Ip:con_ip

networks:
dock_net:
driver: bridge

但是变量看到“con_ip”而不是127.0.0.3

最佳答案

我认为您没有正确使用环境变量。请引用environment variables in compose .

您只需使用该容器的服务名称即可从其他容器访问该容器。这是推荐的方式。

但是如果你出于自己的原因更喜欢IP地址,我会告诉你如何设置容器的静态IP地址,但我不推荐它。

version: '2'
services:
api:
build: ./api/
command: python3 manage.py runserver
volumes:
- ./api:/code
ports:
- "8000:80"
networks:
- dock_net:
ipv4_address: 127.0.0.3
container_name: con_api

web:
build: ./web/
command: python3 manage.py runserver
volumes:
- ./web:/code
ports:
- "8001:80"
networks:
- dock_net:
ipv4_address: 127.0.0.4
container_name: con_web

networks:
dock_net:
driver: bridge
ipam:
config:
- subnet: 127.0.0.0/8
gateway: 127.0.0.1

这会将所需的 IP 地址分配给您的容器。 API 将位于 127.0.0.3web 将位于 127.0.0.4

编辑:如果您想从 Web 容器内部访问名为 api 的服务,那么您可以使用我们在此处分配的 IP 地址。 http://127.0.0.3:80/或者您也可以使用http://api:80/

使用 api 代替 IP 地址,因为它是服务名称,并且当未给出主机名时,服务名称将被视为默认主机名。如果您想了解主机名,请参阅 this问题。

关于Docker-Compose 容器 IP 地址和容器名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45412799/

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