可以将文章内容翻译成中文,广告屏蔽插件可能会导致该功能失效(如失效,请关闭广告屏蔽插件后再试):
问题:
I created a docker image with python libraries and Jupyter.
I start the container with the option -p 8888:8888
, to link ports between host and container.
When I launch a Jupyter kernel inside the container, it is running on localhost:8888
(and does not find a browser). I used the command jupyter notebook
But from my host, what is the IP address I have to use to work with Jupyter in host's browser ?
With the command ifconfig
, I find eth0
, docker
, wlan0
, lo
...
Thanks !
回答1:
You need to run your notebook on 0.0.0.0
: jupyter notebook -i 0.0.0.0
. Running on localhost make it available only from inside the container.
回答2:
Host machine: docker run -it -p 8888:8888 image:version
Inside the Container : jupyter notebook --ip 0.0.0.0 --no-browser --allow-root
Host machine access this url : localhost:8888/tree
When you are logging in for the first time there will be a link displayed on the terminal to log on with a token.
回答3:
The docker run
command is mandatory to open a port for the container to allow the connection from a host browser, assigning the port to the docker container with -p, select your jupyter image from your docker images
.
docker run -it -p 8888:8888 image:version
Inside the container launch the notebook assigning the port you opened:
jupyter notebook --ip 0.0.0.0 --port 8888 --no-browser --allow-root
Access the notebook through your desktops browser on http://localhost:8888
The notebook will prompt you for a token which was generated when you create the notebook.
回答4:
To get the link to your Jupyter notebook server:
After your docker run
command, a hyperlink should be automatically generated. It looks something like this: http://localhost:8888/?token=f3a8354eb82c92f5a12399fe1835bf8f31275f917928c8d2 :: /home/jovyan/work
If you want to get the link again later down the line, you can type docker exec -it <docker_container_name> jupyter notebook list
.
回答5:
The below is how I get it running on Windows 7 with docker toolbox.
If you are using docker toolbox, open up the Docker quickstart terminal, and note the IP here:
docker is configured to use the default machine with IP 192.168.99.100
For help getting started, check out the docs at https://docs.docker.com
Once you run the docker commands from the tensorflow installation website:
docker pull tensorflow/tensorflow # Download latest image
docker run -it -p 8888:8888 tensorflow/tensorflow # Start a Jupyter notebook server
You will receive a message like this:
Copy/paste this URL into your browser when you connect for the first time,
to login with a token:
http://127.0.0.1:8888/?token=d6e80acaf08e09853dc72f6b0f022b8225f94f
In the host, replace 127.0.0.1 with 192.168.99.100 and use the rest of that URL
回答6:
You can use the command jupyter notebook --allow-root --ip[of your container]
or give access to all ip using option --ip0.0.0.0
.
回答7:
In the container you can run the following to make it available on your local machine (using your docker machine's ip address).
jupyter notebook --ip 0.0.0.0 --allow-root
You may not need to provide the --allow-root flag depending on your container's setup.
回答8:
Check out the Torus project that Manifold open sourced recently. We wanted an easy way for our ML engineers to hit the ground running on new projects with a consistent development environment across the entire team. This Python cookiecutter will scaffold out a new project structure for you that includes a Dockerfile that uses a pre-baked ML dev image that we put in Docker Hub and a Docker Compose config that takes care of all the port forwarding for you. The config is written to pick an open port on your host machine to forward to the notebook server running on 8888 inside the container. No more hassle running multiple notebook servers on your machine! Check it out hopefully this is helpful!
Github repo: https://github.com/manifoldai/docker-cookiecutter-data-science
Why we built it (w/ demo): https://medium.com/manifold-ai/torus-a-toolkit-for-docker-first-data-science-bddcb4c97b52
回答9:
As an alternative to building your own Docker image, you can also use the ML Workspace image. The ML Workspace is an open-source web IDE that combines Jupyter, VS Code, a Desktop GUI, and many other tools & libraries into one convenient Docker image. Deploying a single workspace instance is as simple as:
docker run -p 8080:8080 mltooling/ml-workspace:latest
All tools are accessible from the same port and integrated into the Jupyter UI. You can find further documentation here.