我正在 Docker 容器内运行一个 Flask 应用程序,因此需要绑定主机和容器端口(在本例中两者都是端口 5000)。
运行以下命令:
docker run -v //c/Users/Nicholas/PycharmProjects/flask_tutorial:/opt/project -e "FLASK_APP=/opt/project/flaskr.py" -p 0.0.0.0:5000:5000 flask flask run --host=0.0.0.0
创建容器后,我可以在本地浏览器中通过127.0.0.1:5000访问应用程序。但是,当我把这些同样的设置输入到Pycharm(2016.2.3)运行配置GUI中并启动容器后,我无法访问该应用程序(我尝试了勾选“发布所有端口”选项,但无济于事):
使用docker inspect container_id
命令查看通过命令行创建的容器,我得到了NetworkSettings下的以下设置:
"Ports": {
"5000/tcp": [
{
"HostIp": "0.0.0.0",
"HostPort": "5000"
}
]
},
然而,使用Pycharm创建的运行配置容器似乎没有传递端口绑定:
"Ports": {},
有没有办法检查Pycharm传递给Docker的选项?或者让它正确地传递端口绑定选项?
我在Windows 10上运行,Docker在Hyper-V上运行(而非VirtualBox)。