VSCode:如何通过远程服务器在 Docker 容器中运行 Jupyter 笔记本?

问题描述 投票:0回答:2

我可以使用 docker 扩展,然后右键单击“附加 shell”到正在运行的容器。但是,我的 Jupyter 笔记本没有在该容器中运行。

我尝试谷歌搜索如何在 docker 容器中运行 jupyter 笔记本,但没有得到任何结果。

如果有什么不同,我正在尝试在远程服务器上的 docker 容器中运行我的笔记本(使用 VS Code 远程 ssh 登录)

编辑:

我也尝试过跑步

!docker exec -ti {container name} bash

在 jupyter 中,但该单元格只是挂起。当我停止单元时,笔记本仍然没有在容器中运行。

docker visual-studio-code ssh jupyter-notebook remote-server
2个回答
10
投票

2022 年 8 月 31 日更新: 现在原来的做法可能会导致Docker错误:

standard_init_linux.go:228: exec user process caused: no such file or directory

如果您使用系统包而不是从存储库进行原始下载,则该问题已修复。如果是 Ubuntu:

RUN apt-get install tini

其余的都一样:

RUN chmod +x /usr/bin/tini
ENTRYPOINT ["/usr/bin/tini", "--"]
CMD ["jupyter", "notebook", "--port=8888", "--no-browser", "--ip=0.0.0.0", "--allow-root"]

刚刚遇到同样的问题。看来您无法从开箱即用的容器中运行 Jupyter。但是这个链接帮助了我。基本上你需要的是:

  1. 将其添加到您的 dockerfile 中:
# Add Tini. Tini operates as a process subreaper for jupyter. This prevents kernel crashes.
ENV TINI_VERSION v0.6.0
ADD https://github.com/krallin/tini/releases/download/${TINI_VERSION}/tini /usr/bin/tini
RUN chmod +x /usr/bin/tini
ENTRYPOINT ["/usr/bin/tini", "--"]
CMD ["jupyter", "notebook", "--port=8888", "--no-browser", "--ip=0.0.0.0", "--allow-root"]

这将在端口 8888 上的容器内启动 jupyter。所以不要忘记在 docker-compose 或 docker run 中公开此端口。

这在我当地的码头工人中对我有用。我可以假设对于 SSH docker,您需要在从远程 SSH 连接到本地主机期间转发 8888 端口。


0
投票

有可能

第 1 步:ssh 到远程服务器

$ ssh username@server_ip_address

第2步:在远程服务器中运行它

使用端口分配运行 docker

将 image:version 替换为你的 docker 镜像 ID

$ docker run --gpus all -it -p 8888:8888 image:version

Step3:在 docker 中运行它

启动 jupyter 笔记本

$ jupyter notebook --ip 0.0.0.0 --port 8888 --no-browser --allow-root

第四步:在本地系统中运行它

从远程服务器到本地系统的端口转发

$ ssh -N -L 8888:localhost:8888 username@server_ip_address

第5步:

通过桌面浏览器访问 http://localhost:8888 笔记本将提示您输入在创建笔记本时生成的令牌,您可以在步骤 3 中找到该令牌

https://medium.com/@vishnubraj/script-src-https-gist-github-com-vishnuexe-9b18a2b5d0e1eb281dfa4eb55e851cf8-js-script-d5f2e61b6ced

© www.soinside.com 2019 - 2024. All rights reserved.