Docker中的端口映射

sus*_*mah 0 python python-3.x pyramid docker dockerfile

我为一个示例python金字塔应用程序创建了一个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" ]
Run Code Online (Sandbox Code Playgroud)

我的构建命令是这样的:

docker build -t pyramid_app:latest .
Run Code Online (Sandbox Code Playgroud)

我的运行命令是这样的:

docker run -d -p 6543:6543 pyramid_app
Run Code Online (Sandbox Code Playgroud)

当我尝试访问http:// localhost:6543时出现错误

Failed to load resource: net::ERR_SOCKET_NOT_CONNECTED
Run Code Online (Sandbox Code Playgroud)

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

如果有人可以帮我弄清楚为什么我的端口映射不起作用会很棒.

谢谢.

Tho*_*eil 5

在您的pserve配置中,更改

[server:main]
listen = 127.0.0.1:6543
Run Code Online (Sandbox Code Playgroud)

[server:main]
listen = *:6543
Run Code Online (Sandbox Code Playgroud)

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