web-dev-qa-db-fra.com

Comment dockerize Jupyter lab

J'essaie de dockerize le Jupyter Lab et j'ai donc essayé de créer un Dockerfile comme ci-dessous,

FROM python:3.6

WORKDIR /jup

RUN pip install jupyter -U && pip install jupyterlab

EXPOSE 8888

ENTRYPOINT ["jupyter", "lab"]


.__ et exécutez les commandes, docker build . -t jupyter puis docker run jupyter. Mais malheureusement j'ai eu une erreur comme ci-dessous

[I 07:56:34.123 LabApp] Writing notebook server cookie secret to /root/.local/share/jupyter/runtime/notebook_cookie_secret
Traceback (most recent call last):
  File "/usr/local/bin/jupyter-lab", line 11, in <module>
    sys.exit(main())
  File "/usr/local/lib/python3.6/site-packages/jupyter_core/application.py", line 266, in launch_instance
    return super(JupyterApp, cls).launch_instance(argv=argv, **kwargs)
  File "/usr/local/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 "/usr/local/lib/python3.6/site-packages/traitlets/config/application.py", line 87, in catch_config_error
    return method(app, *args, **kwargs)
  File "/usr/local/lib/python3.6/site-packages/notebook/notebookapp.py", line 1507, in initialize
    self.init_webapp()
  File "/usr/local/lib/python3.6/site-packages/notebook/notebookapp.py", line 1297, in init_webapp
    self.http_server.listen(port, self.ip)
  File "/usr/local/lib/python3.6/site-packages/tornado/tcpserver.py", line 142, in listen
    sockets = bind_sockets(port, address=address)
  File "/usr/local/lib/python3.6/site-packages/tornado/netutil.py", line 197, in bind_sockets
    sock.bind(sockaddr)
OSError: [Errno 99] Cannot assign requested address


Comment puis-je dockerize jupyter lab? [en résolvant cette erreur]

6
user7321541

Lorsque vous démarrez jupyter lab, vous devez définir le paramètre --ip. Par exemple, --ip=0.0.0.0.

Après cela, vous aurez une autre erreur:

[C 08:14:56.973 LabApp] Running as root is not recommended. Use --allow-root to bypass.

Donc, si vous voulez continuer, vous devez également ajouter --allow-root.

La Dockerfile finale est:

FROM python:3.6

WORKDIR /jup

RUN pip install jupyter -U && pip install jupyterlab

EXPOSE 8888

ENTRYPOINT ["jupyter", "lab","--ip=0.0.0.0","--allow-root"]
6
Nickolay

En cherchant autour de moi, je suis tombé sur cette question avant de découvrir une référence à Jupyter Labs dans les pages "Lisez le document" pour Jupyter Docker Stacks (voir ici ). La documentation dit:

JupyterLab est préinstallé en tant qu’extension pour ordinateur portable commençant par la balise c33a7dc0eece.

et ils suggèrent d'utiliser une commande comme:

docker run -it --rm -p 8888:8888 jupyter/datascience-notebook start.sh jupyter lab

Je pensais que je pourrais aussi bien ajouter la référence ici au cas où cela serait utile aux autres. (Par exemple, sur Docker Hub, il n’est pas immédiatement évident que Jupyter Labs est pris en charge.)

1
Mark Birbeck

soit courir 
docker run jupyter --allow-root --ip=0.0.0.0 --port=8888 ou changer ENTRYPOINT comme 
ENTRYPOINT ["jupyter", "lab", "--allow-root","--ip=0.0.0.0", "--no-browser"]

0
JPG