Jupyter Lab をドッキングしようとしているので、以下のようにDockerfile
を作成しようとしました。
FROM python:3.6
WORKDIR /jup
RUN pip install jupyter -U && pip install jupyterlab
EXPOSE 8888
ENTRYPOINT ["jupyter", "lab"]
コマンドを実行し、docker build . -t jupyter
その後docker run jupyter
。しかし、残念ながら次のようなエラーが発生しました
[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
どうすればドッキングできますかjupyter lab
? [このエラーを解決することにより]
jupyter lab
を開始するときは、--ip
パラメーターを定義する必要があります。たとえば、--ip=0.0.0.0
。
この後、別のエラーが発生します:
[C 08:14:56.973 LabApp] Running as root is not recommended. Use --allow-root to bypass.
したがって、続行する場合は、--allow-root
も追加する必要があります。
最後のDockerfile
は次のとおりです。
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"]
Jupyter Docker Stacksの「Read The Docs」ページでJupyter Labsへの参照を見つける前に、この質問に出くわしました( here を参照)。ドキュメントには次のように書かれています:
JupyterLabは、c33a7dc0eeceタグで始まるノートブック拡張機能としてプリインストールされています。
そして、彼らは次のようなコマンドを使用することを提案します:
docker run -it --rm -p 8888:8888 jupyter/datascience-notebook start.sh jupyter lab
他の人に役立つ場合は、ここに参照を追加することも考えました。 (たとえば、Docker HubでJupyter Labsがサポートされていることはすぐにはわかりません。)
JupyterLabで独自のDockerイメージを構築する代わりに、 ML Workspace イメージを使用することもできます。 MLワークスペースは、オープンソースのWeb IDEです。これは、Jupyter、JupyterLab、VS Code、および他の多くのツールとライブラリを1つの便利なDockerイメージに結合します。
docker run -p 8080:8080 mltooling/ml-workspace:latest
すべてのツールは同じポートからアクセス可能で、Jupyter UIに統合されています。 JupyterLab here にアクセスする方法の詳細を確認できます。
走るかdocker run jupyter --allow-root --ip=0.0.0.0 --port=8888
またはENTRYPOINT
を次のように変更しますENTRYPOINT ["jupyter", "lab", "--allow-root","--ip=0.0.0.0", "--no-browser"]