安装Jupyter主题后,笔记本和Docker容器将不再起作用

时间:2018-10-18 20:00:58

标签: python docker themes jupyter-notebook containers

我正在通过docker容器运行jupyter笔记本。我的容器中有文件,笔记本等。我有一天决定在课堂上尝试安装jupyterthemes软件包,因为谁不喜欢更多颜色。我打开了一个新的ipynb,并按照以下每个站点的说明进行操作:https://github.com/dunovank/jupyter-themes

但是基本上就是这样:

!pip install jupyterthemes

!jt -t chesterish

主题不会立即出现,并且提示建议重新启动笔记本计算机或刷新浏览器。这是问题开始的地方,尝试刷新或关闭并重新启动笔记本计算机后,它不再起作用,仅在页面上显示一个大的“ 500:内部服务器错误”。尝试重新启动笔记本的主页(此文件夹通过docker在本地托管并在chrome btw上运行)后,chrome中的jupyter窗口什么也不显示。

在这里我回到码头和码头并关闭容器。然后,我尝试重新启动同一容器,希望它现在可以正常工作。我尝试像平常docker start -ai container_name一样启动它,但未成功。每次都会显示这些错误

Executing the command: jupyter notebook
Traceback (most recent call last):
  File "/opt/conda/lib/python3.6/site-packages/traitlets/traitlets.py", 
line 528, in get
    value = obj._trait_values[self.name]
KeyError: 'allow_remote_access'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/opt/conda/lib/python3.6/site- 
packages/notebook/notebookapp.py", line 869, in _default_allow_remote
    addr = ipaddress.ip_address(self.ip)
  File "/opt/conda/lib/python3.6/ipaddress.py", line 54, in ip_address
    address)
ValueError: '' does not appear to be an IPv4 or IPv6 address

During handling of the above exception, another exception occurred:

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 1629, in initialize
self.init_webapp()
  File "/opt/conda/lib/python3.6/site-packages/notebook/notebookapp.py", line 1379, in init_webapp
self.jinja_environment_options,
  File "/opt/conda/lib/python3.6/site-packages/notebook/notebookapp.py", line 158, in __init__
default_url, settings_overrides, jinja_env_options)
  File "/opt/conda/lib/python3.6/site-packages/notebook/notebookapp.py", line 251, in init_settings
allow_remote_access=jupyter_app.allow_remote_access,
  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/notebook/notebookapp.py", line 872, in _default_allow_remote
for info in socket.getaddrinfo(self.ip, self.port, 0, socket.SOCK_STREAM):
  File "/opt/conda/lib/python3.6/socket.py", line 745, in getaddrinfo
for res in _socket.getaddrinfo(host, port, family, type, proto, flags):
socket.gaierror: [Errno -2] Name or service not known

因此,我无法再访问整个Docker容器以及其中的文件和笔记本。那么我有两个问题:

我可以以某种方式恢复我的docker容器或至少检索其中的材料吗?

为什么在主题安装过程中会发生此错误,如何在不破坏jupyter服务器或docker容器的情况下进行此操作?我已经建立了新的容器,并再次尝试了完全相同的结果。

任何有关如何从未运行的Docker容器中获取文件的建议,或有关docker,jupyter和主题包之间的兼容性问题以及如何解决它们的任何建议,将不胜感激。目前,我可以在一个新的容器中工作并继续学习,但是将来最好从该容器中取回我的东西,并学习如何根据需要成功更改主题。

1 个答案:

答案 0 :(得分:0)

所以我对一半的问题都有一个答案,我们找到了一种方法来复制和导出损坏的,未运行的Docker容器中的所有文件。当容器未运行时,文件类型为“不可见”,因此花了一些技巧才能找到它们的位置以及从终端调用它们的路径。

我在MacBook上运行docker,我们在一个新容器中创建的所有文件的位置均为container:./ home / jovyan /。

还在我的普通用户桌面上创建了一个名为“转储”的文件夹,以将容器内容传输到该文件夹​​。弄乱了新的“假”容器后,我们找到了一种从未运行的容器中提取文件的成功方法。我用

docker cp container_name:./home/jovyan/. ./Dump

其中容器名称显然是您的容器,而Dump是您希望文件进入的位置。 / jovyan /是我可以调用的最大文件,它把我拥有的所有东西都带出了容器,但是,如果您知道更多的文件夹和文件名,则可以指定更远的位置并提取特定的东西。

对于大多数有经验的程序员来说,这可能非常简单,但是作为一个新手,最困难的部分是找到docker存储我的容器文件的位置以及使用的路径。 / home / jovyan /。在我的Mac上工作,但可能与您有所不同。如果您的容器破损,只需做一个新测试,其中包含可识别的文件,然后四处乱逛,直到弄清楚如何将其取出。在测试jupyter笔记本中打开一个新的终端窗口,有助于我找到docker在标记我的路径。

尽管仍然想知道如何实际安装这些主题。...不要认为它可以在docker和jupyter上正常工作,可能已经太不兼容了。