После установки тем jupyter блокноты и докер-контейнер перестали работать - PullRequest
0 голосов
/ 18 октября 2018

Я запускаю ноутбуки Jupyter через докер-контейнер.У меня есть файлы, записные книжки и т. Д. Внутри контейнера.Однажды в классе я решаю попробовать установить пакет jupyterthemes, потому что кому не нравится больше цветов.Я открыл новый ipynb и следовал инструкциям на этом сайте: https://github.com/dunovank/jupyter-themes

Но в основном это было так:

!pip install jupyterthemes

!jt -t chesterish

Тема не появляется сразу, и инструкции предлагают перезапустить ноутбукили обновить браузер.Именно здесь начинаются проблемы, после попытки обновить или закрыть и перезапустить ноутбук, он больше не работает и просто отображает большое «500: Внутренняя ошибка сервера» на странице.После попытки перезапустить домашнюю страницу моей записной книжки (она локально размещается через docker и запускается на chrome, кстати), окно jupyter в chrome вообще ничего не отображает.

Здесь я возвращаюсь к терминалу, докеру и закрываювниз контейнерЗатем я пытаюсь перезапустить тот же контейнер, надеясь, что он будет работать сейчас.Я пытаюсь запустить его, как обычно 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

Так что я больше не могу получить доступ ко всему контейнеру док-станции, а также к моим файлам и записным книжкам внутри.Поэтому у меня есть два вопроса:

Могу ли я каким-то образом восстановить свой док-контейнер или хотя бы получить материалы внутри него?

и

Почему эта ошибка возникла во время установки темы иКак я могу сделать это, не нарушая мой сервер Jupyter или Docker контейнер?Я построил новые контейнеры и повторил попытку с точно такими же результатами.

Любые советы о том, как получить файлы из неработающего контейнера Docker, или о проблемах совместимости между Docker, Jupyter и пакетом темы и о том, какрешить их будет высоко ценится.В настоящее время я могу работать из нового контейнера и не отставать от школьных занятий, но в будущем было бы неплохо вернуть мои вещи из этого контейнера и узнать, как успешно изменить мою тему, если я хочу.

1 Ответ

0 голосов
/ 21 октября 2018

Итак, у меня есть ответ на половину вопроса, мы нашли способ скопировать и экспортировать все файлы из моего разбитого, не работающего док-контейнера.Файлы вроде «невидимы», когда контейнер не запущен, поэтому потребовалась некоторая хитрость, чтобы найти, где они находятся и какой путь использовать для вызова их из терминала.

Я запускаю Docker на MacBook, и расположение всех файлов в новом контейнере, который мы сделали, было контейнером: ./ home / jovyan /.

Также на моем обычном рабочем столе пользователя была создана папка «Dump» для переноса содержимого контейнера.После возни с новыми «поддельными» контейнерами мы нашли успешный способ извлечения файлов из неработающего.Я использовал

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

Где имя контейнера - это, очевидно, ваш контейнер, а Dump - это место, куда вы хотите, чтобы файлы шли./ jovyan / был самым большим из тех, что я мог вызвать, и взял все, что у меня было, из контейнера, но если бы вы знали больше папок и имен файлов, вы могли бы указать дальше и извлечь конкретные вещи.

Это, вероятно, довольно просто для большинстваопытные программисты, но, будучи новичком, сложнее всего было найти, где docker хранит мои файлы-контейнеры и какой путь использовать./ Главная / jovyan /.работал на моем Mac, но может отличаться для вас.Если у вас сломанный контейнер, просто создайте новый тестовый контейнер с распознаваемым файлом в нем и возитесь, пока не поймете, как его вытащить.Открытие нового окна терминала в тестовой записной книжке jupyter помогло мне найти то, что докер помечал мои пути.

Все еще задаюсь вопросом, как на самом деле установить эти темы, хотя .... не думаю, что это будет работать докер и jupyter, вероятно, простоуже слишком много несовместимости.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...