gpt4 book ai didi

docker - 网络可达性和容器之间的可见性?

转载 作者:行者123 更新时间:2023-12-02 20:37:03 24 4
gpt4 key购买 nike

我有两个要 docker 化的python / flask服务。一个服务s1是用户的端点。第二个是s2帮助s1。因此,用户调用s1s1调用s2

如何使s2知道ipt的IP地址?如何通过最小化配置参数的数量来做到这一点(理想情况下,只需更改一个设置)?

到目前为止s1:

FROM python:3-alpine
WORKDIR /code
ADD requirements.txt /code/
RUN pip install -r requirements.txt
ADD . /code/
EXPOSE ${FLASK_RUN_ON_PORT}
CMD [ "python", "-m", "flask", "run", "--host=0.0.0.0" ]

使用.env:
FLASK_ENV=production
FLASK_APP=s1.py
FLASK_RUN_PORT=5000

到目前为止 s1:
FROM python:3-alpine
WORKDIR /code
ADD requirements.txt /code/
RUN pip install -r requirements.txt
ADD . /code/
CMD [ "python", "-m", "flask", "run", "--host=0.0.0.0" ]

使用.env:
FLASK_ENV=production
FLASK_APP=s2.py
FLASK_RUN_PORT=5050

和docker-compose如下:
version: '3'
services:
webservice2:
build: /path/to/s2
env_file:
- /path/to/s2/.env
ports:
- ${FLASK_RUN_ON_PORT}:${FLASK_RUN_ON_PORT}
volumes:
- .:/code
webservice1:
build: /path/to/s1
env_file:
- /path/to/s1/.env
ports:
- ${FLASK_RUN_ON_PORT}:${FLASK_RUN_ON_PORT}
volumes:
- .:/code
depends_on:
- webservice2

所以,总结一下。问题是:如何使 s2清楚 s1在端口5050上?

最佳答案

您没有做任何特别的事情。

docs:

Links are not required to enable services to communicate - by default, any service can reach any other service at that service’s name. (See also, the Links topic in Networking in Compose.)



除非您执行某些操作来更改默认行为,否则两个容器都将连接到同一网络,并且主机 webservice1将通过 webservice2知道,反之亦然。

关于docker - 网络可达性和容器之间的可见性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54927875/

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