server.py 的关键内容如下:
if __name__ == '__main__':
app.run(host='0.0.0.0', port=9000)
Dockerfile 如下:
FROM python:3.7-buster
WORKDIR /app/
COPY ./requirements.txt /app/requirements.txt
RUN pip3 install -r requirements.txt -i https://mirrors.aliyun.com/pypi/simple/
COPY . /app/
EXPOSE 9000
ENV FLASK_APP=server.py
CMD python -m flask run --host=0.0.0.0 -p 9000
下面这样子可以访问到 localhost:9000 。
docker container run --name user-info-pool-service -d -p 9000:9000 user-info-pool-service
但是下面这样却不行。
docker container run --network=host --name user-info-pool-service -d user-info-pool-service
真的好奇怪,为什么呢?
1
dilu 2020-11-24 13:14:44 +08:00
大哥,你第二中方法没有映射端口啊......
|
2
kosmosr 2020-11-24 13:17:39 +08:00
了解一下-p 参数你就知道了
|
3
acmore 2020-11-24 13:39:46 +08:00
|
5
taolu 2020-11-24 13:42:41 +08:00 via iPhone 1
--network host 只适用于 Linux,不支持 win 和 mac
|
6
acmore 2020-11-24 13:45:24 +08:00 2
@taolu 对的,还有可能是这种情况。
"The host networking driver only works on Linux hosts, and is not supported on Docker Desktop for Mac, Docker Desktop for Windows, or Docker EE for Windows Server." |
8
JasonLaw OP @taolu #5
@acmore #6 我记起来了🤕,我之前还看过 https://github.com/docker/for-mac/issues/2716 这个 issue,就是没想起这个原因。 |