【问题标题】:Jupyter Notebook In Singularity Container奇点容器中的 Jupyter 笔记本
【发布时间】:2020-08-30 23:10:27
【问题描述】:

在我进入我的奇异容器后,我如何在我的浏览器上获取一个 jupyter 笔记本 - 我找不到太多关于它的文档?我在一个 centos linux 发行版上,我必须通过 ssh 进入。

Jupyter 已安装在容器中。在你singularity shell --writable ....sif 之后,如何真正让一个 jupyter notebook 在浏览器上运行?基本:jupyter notebook --no-browser --port=7800 返回此错误:

Traceback (most recent call last):
  File "/opt/conda/bin/jupyter-notebook", line 11, in <module>
    sys.exit(main())
  File "/opt/conda/lib/python3.6/site-packages/jupyter_core/application.py", line 266, in launch_instance
    return super(JupyterApp, cls).launch_instance(argv=argv, **kwargs)
  File "/opt/conda/lib/python3.6/site-packages/traitlets/config/application.py", line 657, in launch_instance
    app.initialize(argv)
  File "<decorator-gen-7>", line 2, in initialize
  File "/opt/conda/lib/python3.6/site-packages/traitlets/config/application.py", line 87, in catch_config_error
    return method(app, *args, **kwargs)
  File "/opt/conda/lib/python3.6/site-packages/notebook/notebookapp.py", line 1628, in initialize
    self.init_configurables()
  File "/opt/conda/lib/python3.6/site-packages/notebook/notebookapp.py", line 1319, in init_configurables
    connection_dir=self.runtime_dir,
  File "/opt/conda/lib/python3.6/site-packages/traitlets/traitlets.py", line 556, in __get__
    return self.get(obj, cls)
  File "/opt/conda/lib/python3.6/site-packages/traitlets/traitlets.py", line 535, in get
    value = self._validate(obj, dynamic_default())
  File "/opt/conda/lib/python3.6/site-packages/jupyter_core/application.py", line 99, in _runtime_dir_default
    ensure_dir_exists(rd, mode=0o700)
  File "/opt/conda/lib/python3.6/site-packages/jupyter_core/utils/__init__.py", line 13, in ensure_dir_exists
    os.makedirs(path, mode=mode)
  File "/opt/conda/lib/python3.6/os.py", line 210, in makedirs
    makedirs(head, mode, exist_ok)
  File "/opt/conda/lib/python3.6/os.py", line 220, in makedirs
    mkdir(name, mode)
OSError: [Errno 30] Read-only file system: '/run/user/19241'

【问题讨论】:

    标签: jupyter singularity-container


    【解决方案1】:

    在启动笔记本后,您会得到一个来自输出的链接,您可以将其粘贴到浏览器中。请参阅下面的示例输出。

    您确定映像已成功构建/完全传输吗?我无法复制该错误。如果仍然出现该错误,请使用您的定义文件/生成图像的命令更新问题。

    $ singularity pull docker://jupyter/scipy-notebook
    INFO:    Converting OCI blobs to SIF format
    INFO:    Starting build...
    Getting image source signatures
    Copying blob 692c352adcf2 done
    ...
    2020/08/31 09:23:15  info unpack layer: sha256:2be4f33acc3414896b4c608db82138711c62386174f91319cd1f317b54431fda
    INFO:    Creating SIF file...
    INFO:    Build complete: scipy-notebook_latest.sif
    
    $ singularity shell scipy-notebook_latest.sif 
    Singularity> jupyter notebook --no-browser --port=7800
    [I 09:28:37.259 NotebookApp] Writing notebook server cookie secret to /home/tsnowlan/.local/share/jupyter/runtime/notebook_cookie_secret
    [I 09:28:38.266 NotebookApp] JupyterLab extension loaded from /opt/conda/lib/python3.8/site-packages/jupyterlab
    [I 09:28:38.266 NotebookApp] JupyterLab application directory is /opt/conda/share/jupyter/lab
    [I 09:28:38.269 NotebookApp] Serving notebooks from local directory: /data/playground/jupyter
    [I 09:28:38.269 NotebookApp] Jupyter Notebook 6.1.3 is running at:
    [I 09:28:38.269 NotebookApp] http://localhost:7800/?token=xxxx
    [I 09:28:38.269 NotebookApp]  or http://127.0.0.1:7800/?token=xxxx
    [I 09:28:38.269 NotebookApp] Use Control-C to stop this server and shut down all kernels (twice to skip confirmation).
    [C 09:28:38.273 NotebookApp] 
        
        To access the notebook, open this file in a browser:
            file:///home/tsnowlan/.local/share/jupyter/runtime/nbserver-114505-open.html
        Or copy and paste one of these URLs:
            http://localhost:7800/?token=xxxx
         or http://127.0.0.1:7800/?token=xxxx
    

    【讨论】:

    • 嗯。非常感谢。所以我并不完全清楚。首先,我尝试了您的命令。我成功拉出了上面的 docker://jupyter/scipy-notebook 。然后我尝试炮击。我得到了来自计算机的不同响应。它只是给了我一个壳。它没有为我的浏览器提供与主机的链接。不知道为什么。另外,我认为我的问题略有不同:构建图像时,它已经安装了 jupyter、torch 等。我想要打开的 .ipynb 文件只是在我的集群上。那我怎么打开它们?可能需要某种主机端口映射?
    • 如果您检查 docker hub,pytorch 等有不同的变体。检查是否有一个包含您需要的一切,如果没有,则使用最接近的作为其基本映像的定义文件并安装你的额外包裹。您需要使用-B path/on/host:/path/in/container 来安装它们,或者只是从带有笔记本的目录中启动映像,因为它是自动安装的。从奇点 shell 你应该能够指定你需要的东西,虽然我不知道准确的命令
    • 嗯。非常感谢。首先,我尝试了您的命令。我成功拉出了上面的 docker://jupyter/scipy-notebook 。然后我尝试炮击。我得到了来自计算机的不同响应。它只是给了我一个壳。它没有为我的浏览器提供与主机的链接。不知道为什么。另外,我认为我的问题略有不同:我在 "jupyter notebook --no-browser --port=8000" 之前尝试了 "export XDG_RUNTIME_DIR=" 并且它运行了。不幸的是,当我进入我的本地和 ssh -N -L 8000:localhost:8000 h@b.edu 时,我得到通道 2:打开失败:连接失败:连接被拒绝?
    猜你喜欢
    • 1970-01-01
    • 2021-11-24
    • 2019-04-11
    • 2019-07-02
    • 2022-12-03
    • 1970-01-01
    • 1970-01-01
    • 2017-10-10
    相关资源
    最近更新 更多