проблема запуска образа докера с помощью ноутбука Jupyter - PullRequest
3 голосов
/ 28 апреля 2019

У меня есть записная книжка Jupyter и файл данных в папке. Я сделал Dockerfile и написал следующие строки

FROM jupyter/base-notebook

ARG export_file=FooD_Kind.csv

RUN pip install jupyter

RUN pip install numpy

RUN pip install matplotlib

RUN pip install pandas

RUN pip install pulp

COPY $export_file FooD_Kind.csv

COPY task_4kind.ipynb /

CMD ["jupyter notebook", "task_4kind.ipynb"]

Я могу успешно построить изображение, используя docker build -t nameofimage Но когда я делаю docker run -it nameofimage. Я получаю ошибку [FATAL tini (7)] exec jupyter notebook failed: No such file or directory.

Как мне запустить этот ноутбук Jupyter в докере?

РЕДАКТИРОВАТЬ:

Я пробовал две замены в последней строке,
Я заменил последнюю строку на

# Start the jupyter notebook
ENTRYPOINT ["jupyter", "notebook", "--ip=*"]

Он запускается и выдает токен на экране, но когда я вставляю токен на локальный хост, выдает ошибку неверных учетных данных

затем я заменил последнюю строку на

CMD jupyter notebook --port=8888 --no-browser --ip=0.0.0.0 --allow-root

Он запускается и выдает токен на экране, но когда я вставляю токен на локальный хост, выдает ошибку неверных учетных данных

1 Ответ

2 голосов
/ 29 апреля 2019

Если вы проверите оригинальный Dockerfile , вы найдете следующее:

ENTRYPOINT ["tini", "-g", "--"]
CMD ["start-notebook.sh"]

# Add local files as late as possible to avoid cache busting
COPY start.sh /usr/local/bin/
COPY start-notebook.sh /usr/local/bin/
COPY start-singleuser.sh /usr/local/bin/

start-notebook.sh получит вам действительный токен.Последующие файлы позволяют взаимодействовать с изображением, эти параметры описаны в документах .

Помните, что есть больше предостережений, например, какой пользователь запускает команды, описанные в Dockerfile: root илиjovyan (пользователь Jupyter)?Команды, выполняемые пользователем root, могут устанавливать разрешения таким образом, чтобы jovyan, например, не загружал данный пакет.Чтобы это исправить, есть дополнительная строка во всех файлах Docker Jupyter (основной блокнот и производные):

RUN fix-permissions /etc/jupyter/

Здесь - пример того, как может выглядеть производный блокнот.

По сути, либо удалите свою пользовательскую ENTRYPOINT / CMD и используйте оригинальные, либо убедитесь, что вы, например, получите токен правильно.Также исправьте разрешения.

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