Pycharm Docker端口绑定

时间:2016-10-23 21:08:29

标签: docker pycharm

我正在Docker容器中运行一个烧瓶应用程序,所以我需要绑定主机和容器端口(在这种情况下,两者都是端口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并启动容器后,我无法访问该应用程序(我尝试勾选“发布所有端口”选项无效):

pycharm docker run configuration

在命令行创建的容器中使用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)上运行

2 个答案:

答案 0 :(得分:1)

我在Django应用程序中遇到了类似的问题。 这是我解决的方法:

首先,您需要在Docker容器中设置项目解释器:

  1. 转到设置(CTRL + ALT + s)
  2. 然后搜索project interpreter
  3. 然后点击右上角的小轮子
  4. 然后单击添加
  5. 然后在菜单中选择Docker
  6. 然后在选择列表中选择以前构建的图像
  7. 然后点击ok按钮。

现在您需要创建一个正确的运行配置。

  1. ALT+u
  2. 然后ALT+r
  3. 然后ALT+inser
  4. 选择Flask server
  5. 您将看到一个带有标签Docker container settings的文本区域,单击此文本区域
  6. 然后点击SHIFT+enter

您将拥有一个菜单,可让您配置多个docker run参数,包括端口出价。

答案 1 :(得分:0)

对于我在app对象中添加localhost IP('0.0.0.0')作为arg运行调用解决了它

app.run(host='0.0.0.0')