【发布时间】:2019-12-01 02:36:10
【问题描述】:
我正在尝试在远程机器上的 docker 容器中使用 python 作为 Pycharm 中的解释器。既然是拗口,这里有一张图:
容器中运行着一个 Jupyter Notebook,我可以通过本地浏览器连接到它(尽管这只是为了测试连接)。我用来启动 Docker 容器的命令是
docker run --runtime=nvidia -it --rm --shm-size=2g -v /home/timo/storage:/storage -v /etc/passwd:/etc/passwd -v /etc/group:/etc/group --ulimit memlock=-1 -p 8888:8888 -p 7722:22 --ipc=host latest:latest
我可以使用ssh -L 8888:0.0.0.0:8888 BBB.BBB.BBB.BBB 转发Jupyter notebook 正在运行的端口8888,从而在本地机器上使用它。但我不太喜欢使用 Jupyter 进行开发,希望在 Pycharm 的 Docker Container 中使用 Python 解释器。
当我在 Pycharm 中选择“添加 Python 解释器”时,我得到以下选项:
Pycharm 的 documentation 建议使用如下所示的“添加 Python 解释器/Docker”工具:
但是,如果 Docker 在远程机器上,文档并没有说明如何设置 Docker 容器和连接。
所以我的问题是:我应该使用 Unix 还是 TCP 套接字连接到我的远程 docker?或者我应该以某种方式转发容器中的所有相关端口并使用“SSH解释器”选项?如果是这样,我该如何设置这一切?我是否首先正确设置了我的 Docker 容器?
在过去的两天里,我想我已经浏览了 每个 论坛和在线资源,但还没有接近让它发挥作用。我也试图让它在 Spyder 中工作,但也无济于事。因此,非常感谢任何建议!
非常感谢!
【问题讨论】:
-
也许youtrack.jetbrains.com/issue/PY-33489 中的解决方法可能会有所帮助,PyCharm 本身不支持此用例,因此需要额外点击鼠标。同时也不支持nvidiayoutrack.jetbrains.com/issue/PY-26429
-
@Pavel_Karateev 感谢您的回复。至少知道这不是微不足道的,而且我不只是犯了一些愚蠢的错误,这很有帮助。我试试看。
-
@Pavel_Karateev 在我的私人本地机器上试过这个,它可以工作。然而,这对我来说不是一个解决方案,因为它需要我最终希望使用的服务器上没有的 sudo 访问权限。另外,它似乎不太安全......无论如何,谢谢。
-
我刚刚开始这样做,因为我正在尝试做同样的事情。我一直在使用 VS Code 进行远程容器开发。你们有没有设法找到一个更用户友好的解决方案,不需要遥控器上的 sudo?
标签: docker ssh pycharm portforwarding