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]
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"]
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.)
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"]