无法使用 Dockerfile 连接到 docker 容器(python 服务器)

Can not connect to docker container(python server) with Dockerfile

我正在研究docker。

我使用 docker 并使用 Dockerfile 到 运行 一个 python 服务器。

这是我的 python 名字 app.py:

from flask import Flask
app = Flask(__name__)
@app.route('/')
def hello():
    return "hello docker"
if __name__ == '__main__':
    app.run()

 app.run(host="0.0.0.0", port=5000)

我运行正在VirtualBox中使用centos7。

如果我不加

host="0.0.0.0", port=5000

我无法连接到 http://192.168.1.6:5000/(这是我的虚拟 IP)

但是现在当我使用 Dockerfile 和 运行 这个命令时,我无法连接到服务器。

这是我的 Dockerfile :

FROM python:2.7
LABEL maintainer ="me <me@gmail.com>"
RUN pip install flask
COPY app.py /app/
WORKDIR /app
EXPOSE 5000
CMD ["python","app.py"]

然后我检查容器

            "Gateway": "172.17.0.1",
            "IPAddress": "172.17.0.2",

成功了。但是我无法连接到 http://192.168.1.6:5000/

我也设置了防火墙打开5000端口重新加载

为什么我可以连接到我的虚拟机?

EXPOSE 实际上并没有发布端口。您应该使用 -p 选项 运行 以便 发布 映射 端口:

docker run --detach -p 5000:5000 <image>