我为示例python pyramid应用程序创建了一个docker。我的dockerfile是这样的:
FROM ubuntu:16.04
RUN apt-get update -y && \
apt-get install -y python-pip python-dev curl && \
pip install --upgrade pip setuptools
WORKDIR /app
COPY . /app
EXPOSE 6543
RUN pip install -e .
ENTRYPOINT [ "pserve" ]
CMD [ "development.ini" ]
我的构建命令是这样的:
docker build -t pyramid_app:latest .
我的运行命令是这样的:
docker run -d -p 6543:6543 pyramid_app
当我尝试访问http://localhost:6543时出现错误
Failed to load resource: net::ERR_SOCKET_NOT_CONNECTED
当我在机器内 curl 时,它可以正常工作。
如果有人可以帮助我弄清楚为什么我的端口映射不起作用,那将是很好的。
谢谢。
最佳答案
在您的Pserve配置中,更改
[server:main]
listen = 127.0.0.1:6543
至
[server:main]
listen = *:6543
否则,Web服务器将仅接受来自Docker容器本身的连接
关于python - Docker中的端口映射,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42008466/