How to dockerize Jupyter lab

2019-02-09 20:52发布

I'm trying to dockerize the Jupyter Lab and so I tried to create a Dockerfile as below,

FROM python:3.6

WORKDIR /jup

RUN pip install jupyter -U && pip install jupyterlab

EXPOSE 8888

ENTRYPOINT ["jupyter", "lab"]


and run the commands, docker build . -t jupyter then docker run jupyter. But unfortunately I got some error as below

[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


How can I dockerize jupyter lab ? [ by solving this error ]

3条回答
Melony?
2楼-- · 2019-02-09 21:00

either run
docker run jupyter --allow-root --ip=0.0.0.0 --port=8888 or change ENTRYPOINT as
ENTRYPOINT ["jupyter", "lab", "--allow-root","--ip=0.0.0.0", "--no-browser"]

查看更多
ら.Afraid
3楼-- · 2019-02-09 21:15

Whilst searching around I came across this question, before going on to discover a reference to Jupyter Labs in the 'Read The Docs' pages for Jupyter Docker Stacks (see here). The documentation says:

JupyterLab is preinstalled as a notebook extension starting in tag c33a7dc0eece.

and they suggest using a command like:

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

I thought I might as well add the reference here in case it's useful for others. (It's not immediately obvious on Docker Hub for example, that there is support for Jupyter Labs.)

查看更多
The star\"
4楼-- · 2019-02-09 21:17

When you start jupyter lab you should define --ip parameter. For example, --ip=0.0.0.0.

After this you will have another error:

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

So, if you want to proceed you need to add --allow-root as well.

The final Dockerfile is:

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"]
查看更多
登录 后发表回答