【问题标题】:How to open jupyter nookbooks in docker container?如何在 docker 容器中打开 jupyter nookbooks?
【发布时间】:2017-04-22 23:09:00
【问题描述】:

我在运行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 notebook,所以希望有人能帮助我。我几乎没有使用 Docker 的经验。

【问题讨论】:

    标签: python docker docker-compose jupyter-notebook jupyter


    【解决方案1】:

    Jupyter 笔记本的默认端口号似乎是 8888。当 Docker 容器启动 Jupyter 时,您可以在控制台输出中看到这一点。

    要么更改 Docker compose 文件中的端口映射,就像我在下面所做的那样,要么查看是否可以在 Docker compose 文件中设置环境变量,以使 Docker / Jupyter 在您拥有的端口上运行打开 (5000)。

    下面,Docker compose 部分在端口 8888 上设置了一个节点服务器(感谢 copypasta),但应该提供足够的示例来更改您的) - 真正唯一重要的行是端口行。

    version: '2'
    services:
      nodejs:
        build:
          context: .
           dockerfile: DockerFile
         ports:
           - "8888:8888"
    

    【讨论】:

    • 我将它用于 Flask 应用程序,所以我有这个 ports: - "5000:5000" 我可以添加更多端口吗?
    • 是的,只需在端口部分添加另一行,就像第一行一样
    • 我刚刚尝试了你的建议,但我收到了GET http://localhost:8888/ net::ERR_EMPTY_RESPONSE
    • docker-compose down了吗?你甚至可能需要docker compose down --rmi=local 才能完全删除容器,所以它使用正确的端口号重建????
    • 我同时运行docker-compose down,然后运行docker-compose up -d --build,其中一个容器的日志是:* Running on http://0.0.0.0:5000/ (Press CTRL+C to quit) 172.19.0.1 - - [23/Apr/2017 17:55:18] "GET / HTTP/1.1" 404 -。然后我运行docker container exec -it rainmaker_python_1 /bin/bash,在容器内我运行jupyter notebook --allow-root,还是不行。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-11-27
    • 1970-01-01
    • 2016-04-24
    • 2023-03-12
    • 1970-01-01
    • 2021-05-11
    • 2020-12-21
    相关资源
    最近更新 更多