[英]Docker-Compose container ip address with container name
我的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
我認為您沒有正確使用環境變量。 請在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.3
, web
為127.0.0.4
編輯:如果您想從Web容器內部訪問名為api
服務,則可以使用它的IP地址,因為我們已經在此處分配了它。 http://127.0.0.3:80/或您也可以使用http:// api:80 /
使用api
代替IP地址是因為它是服務名稱,如果沒有提供主機名,則將服務名稱作為默認主機名。 如果您想了解主機名,請參考此問題。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.