Docker 中的端口映射

Port mapping in Docker

我为示例 python 金字塔应用创建了一个 docker。我的 docker 文件是这样的:

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

当我在机器内卷曲时它工作正常。

如果有人能帮我弄清楚为什么我的端口映射不起作用,那就太好了。

谢谢。

在您的 pserve 配置中,更改

[server:main]
listen = 127.0.0.1:6543

[server:main]
listen = *:6543

否则 Web 服务器将只接受来自 docker 容器本身的连接