我正在创建一门课程,要求学生运行一些名为 PyStan 的软件。事实证明,这仅在 Windows 上部分支持。
有人给了我一个使用 Docker 的想法,这样学生就可以轻松获得完成作业所需的软件。最终目标是学生只需付出尽可能少的努力,就可以在自己的机器上启动并运行 Jupyter Lab。
我尝试编写以下内容来运行
sudo docker compose up
version: '3'
services:
ubuntu_anaconda:
image: continuumio/anaconda3:latest
container_name: ubuntu_anaconda
environment:
- LANG=C.UTF-8
- JUPYTER_TOKEN=my_secret_token # Set your desired token here
ports:
- "8888:8888" # Expose Jupyter Lab port
volumes:
- ./data:/data # Add this line if you want to mount a local directory to the container
command: /bin/bash -c "/opt/conda/bin/conda install -y -c conda-forge pystan && /opt/conda/bin/jupyter lab --ip=0.0.0.0 --port=8888 --allow-root --NotebookApp.token=$${JUPYTER_TOKEN}"
但是,当我打开网络浏览器并导航到
http://localhost:8888/
或 http://localhost:8888/?token=my_secret_token
时,它会显示
连接已重置
页面加载时与服务器的连接已重置。
- 该网站可能暂时不可用或太忙。请稍后重试。
- 如果您无法加载任何页面,请检查计算机的网络连接。
- 如果您的计算机或网络受防火墙或代理保护,请确保允许 Firefox 访问网络。
另一方面,当我导航到 https://127.0.0.1:8888/ 时,它说
安全连接失败
连接 127.0.0.1:8888 时发生错误。 PR_END_OF_FILE_ERROR
错误代码:PR_END_OF_FILE_ERROR
- 无法显示您尝试查看的页面,因为无法验证接收到的数据的真实性。 请联系网站所有者告知此问题。
似乎您的容器无法通过某些网络设置访问...不确定发生了什么,我需要知道您的整个设置。也许或有必要重新启动电脑并尝试以下步骤。
我在 ubuntu 24 主机上测试了你的 docker compose 文件,它工作正常。我按如下方式启动了 jupyter 会话(我允许 root 只是因为它是本地和非生产环境):
docker compose up
docker exec -it <container_name> bash
jupyter notebook --allow-root
在您的用例中,使用 Visual Studio 插件可能更直观
Add dev container configuration files
From docker-compose.yml
(它将检测您的文件)
希望这两个见解对您有所帮助! :)