运行docker-compose ps
时,我有以下容器:
Name Command State Ports
---------------------------------------------------------------------------------
rainmaker_db_1 docker-entrypoint.sh mysqld Up 0.0.0.0:3306->3306/tcp
rainmaker_python_1 python -u /app/run.py Up 0.0.0.0:5000->5000/tcp
我想在容器 rainmaker_python_1 内运行 jupyther,因此我运行以下命令:
docker-compose exec python jupyter notebook --allow-root
然后我得到以下输出:
[I 23:03:19.168 NotebookApp] Serving notebooks from local directory: /app
[I 23:03:19.168 NotebookApp] 0 active kernels
[I 23:03:19.168 NotebookApp] The Jupyter Notebook is running at: http://localhost:8888/?token=35ff0fa9ec171204dbd7542d9c493c760055de24e1b7af18
[I 23:03:19.168 NotebookApp] Use Control-C to stop this server and shut down all kernels (twice to skip confirmation).
[W 23:03:19.169 NotebookApp] No web browser found: could not locate runnable browser.
[C 23:03:19.169 NotebookApp]
Copy/paste this URL into your browser when you connect for the first time,
to login with a token:
http://localhost:8888/?token=35ff0fa9ec171204dbd7542d9c493c760055de24e1b7af18
但是,如果我复制并粘贴链接 http://localhost:8888/?token=35ff0fa9ec171204dbd7542d9c493c760055de24e1b7af18
我发现无法访问该网站。然后我尝试了:
http://localhost:5000/?token=35ff0fa9ec171204dbd7542d9c493c760055de24e1b7af18
但我得到以下信息:
我希望能够执行 jupyter 笔记本,所以希望有人可以帮助我。我几乎没有使用 Docker 的经验。
最佳答案
Jupyter 笔记本的默认端口号似乎是 8888。当 Docker 容器启动 Jupyter 时,您可以在控制台输出中看到这一点。
要么更改 Docker compose 文件中的端口映射,就像我下面所做的那样,要么查看是否有可以在 Docker compose 文件中设置的环境变量,以使 Docker/Jupyter 在您拥有的端口上运行打开(5000)。
下面,Docker compose 部分在端口 8888 上设置了一个 Node 服务器(感谢 copypasta),但应该提供足够的示例来更改您的服务器) - 实际上唯一重要的行是 ports 行。
version: '2'
services:
nodejs:
build:
context: .
dockerfile: DockerFile
ports:
- "8888:8888"
关于python - 如何在 docker 容器中打开 jupyter nookbooks?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43565592/