cschranz/gpu-jupyter!Github Workflow 确保实验环境一致性。若输出类似以下内容,则表示配置成功(需注意 CUDA 版本与本地驱动兼容性,建议 NVIDIA 驱动版本 ≥ 520):bashdocker run --rm --gpus all nvidia/cuda:12.6.3-cudnn-runtime-ubuntu24.04 nvidia-smi
Fri Feb 28 13:13:06 2025 +-----------------------------------------------------------------------------------------+ | NVIDIA-SMI 560.35.04 Driver Version: 561.17 CUDA Version: 12.6 | |-----------------------------------------+------------------------+----------------------+ | GPU Name Persistence-M | Bus-Id Disp.A | Volatile Uncorr. ECC | | Fan Temp Perf Pwr:Usage/Cap | Memory-Usage | GPU-Util Compute M. | | | | MIG M. | |=========================================+========================+======================| | 0 NVIDIA GeForce RTX 3060 ... On | 00000000:01:00.0 On | N/A | | N/A 46C P8 11W / 60W | 223MiB / 6144MiB | 15% Default | | | | N/A | +-----------------------------------------+------------------------+----------------------+
进入工作目录并创建数据文件夹(默认挂载路径):
bashcd your-working-directory mkdir -p data # 宿主机数据目录,将与容器共享
启动 GPU-Jupyter 容器:
bashdocker run --gpus all -d -it -p 8848:8888 \ -v $(pwd)/data:/home/jovyan/work \ -e GRANT_SUDO=yes \ -e JUPYTER_ENABLE_LAB=yes \ --user root \ cschranz/gpu-jupyter:v1.9_cuda-12.6_ubuntu-24.04
--gpus all:启用所有 GPU-p 8848:8888:端口映射(宿主机:容器)-v $(pwd)/data:/home/jovyan/work:挂载数据卷(宿主机数据目录 → 容器工作目录)-e GRANT_SUDO=yes:允许 root 用户执行 sudo-e JUPYTER_ENABLE_LAB=yes:启动 JupyterLab(而非传统 Notebook)--user root:以 root 用户运行容器获取登录令牌:
bashdocker exec -it [容器ID/名称] jupyter server list
输出示例:
[JupyterServerListApp] Currently running servers: [JupyterServerListApp] [***] :: /home/jovyan
复制令牌,在浏览器访问 http://localhost:8848 并粘贴令牌登录。登录后可在 http://localhost:8848/login 设置密码(原默认密码 gpu-jupyter)。
Docker Hub 提供以下镜像变体(以 v1.9 为例):
v1.9_cuda-12.6_ubuntu-24.04:全功能版(含 Python/R/Julia 及完整工具栈)v1.9_cuda-12.6_ubuntu-24.04_python-only:仅含 Python 解释器(无 R/Julia)v1.9_cuda-12.6_ubuntu-24.04_slim:精简版(仅 Python,无额外工具包)其他版本(如 v1.8_cuda-12.5_ubuntu-22.04、v1.7_cuda-12.3_ubuntu-22.04 等)及旧版本标签见 Docker Hub。
v1.5_cuda-12.0_ubuntu-22.04 系列v1.4_cuda-11.6_ubuntu-20.04 系列v1.4_cuda-11.2_ubuntu-20.04 系列v1.4_cuda-10.1_ubuntu-18.04 系列如需自定义工具包或适配特定 GPU 架构,建议构建自定义镜像:
克隆仓库并切换版本分支:
bashgit clone [***] cd gpu-jupyter git checkout v1.9_cuda-12.6_ubuntu-24.04 # 选择或创建版本分支
生成 Dockerfile(支持自定义参数,见 配置说明):
bash# 生成仅含 Python 的 Dockerfile(不含 Julia 和 R) ./generate-Dockerfile.sh --python-only
构建镜像:
bashdocker build -t gpu-jupyter .build/ # 耗时较长,需耐心等待
启动自定义容器:
bashdocker run --gpus all -d -it -p 8848:8888 \ -v $(pwd)/data:/home/jovyan/work \ -e GRANT_SUDO=yes \ -e JUPYTER_ENABLE_LAB=yes \ -e NB_UID="$(id -u)" \ # 同步宿主机用户 UID(避免权限问题) -e NB_GID="$(id -g)" \ # 同步宿主机用户 GID --user root \ --restart always \ # 容器异常时自动重启 --name gpu-jupyter_1 \ # 指定容器名称 gpu-jupyter
创建 docker-compose.yml(参考仓库示例):
yamlversion: '3.8' services: gpu-jupyter: build: .build/ ports: - "8848:8888" volumes: - ./data:/home/jovyan/work environment: - GRANT_SUDO=yes - JUPYTER_ENABLE_LAB=yes - NB_UID=${UID} - NB_GID=${GID} user: root deploy: resources: reservations: devices: - driver: nvidia count: all capabilities: [gpu] restart: always
启动服务:
bashdocker-compose up --build -d # 构建并后台运行 docker-compose ps # 检查状态 docker-compose logs -f # 查看日志 docker-compose down # 停止服务
注意:需 Docker Compose 版本 ≥ 1.28.0 以支持 GPU 资源配置。
查看运行中容器:
bashdocker ps # 查看运行中容器(加 -a 查看所有容器)
查看容器资源占用:
bashdocker stats # 实时监控 CPU/内存/网络/磁盘使用
查看容器日志:
bashdocker logs [容器ID/名称] -f # -f 实时跟踪日志
进入容器终端:
bashdocker exec -it [容器ID/名称] bash # 交互式终端
停止并删除容器:
bashdocker rm -f [容器ID/名称]
generate-Dockerfile.sh 脚本用于生成自定义 Dockerfile,支持以下参数(互斥,每次仅选一个):
| 参数 | 说明 |
|---|---|
--help | 显示帮助信息 |
--slim | 精简版:仅含 Python 解释器,不含 R/Julia 及 custom/usefulpackages.Dockerfile 中的工具包 |
--python-only | Python 专用版:不含 R/Julia,但包含 custom/usefulpackages.Dockerfile 工具包 |
--no-useful-packages | 基础版:含 R/Julia,但不含 custom/usefulpackages.Dockerfile 工具包 |
| `-p | --password [密码]` |
| `-c | --commit [commit ID]` |
| 环境变量 | 说明 | 默认值/示例 |
|---|---|---|
GRANT_SUDO | 是否允许 sudo 权限 | no(建议设为 yes) |
JUPYTER_ENABLE_LAB | 是否启动 JupyterLab | yes |
JUPYTER_TOKEN | 静态登录令牌(UUID 格式,避免容器重启后令牌变更) | 自动生成(通过 uuidgen 生成自定义令牌) |
NB_UID | 容器内用户 UID(需与宿主机一致以解决文件权限问题) | 1000 |
NB_GID | 容器内用户 GID | 1000 |
避免直接修改 .build/Dockerfile(每次生成会覆盖),建议通过以下方式添加自定义包:
custom/usefulpackages.Dockerfile,添加 apt/pip 安装命令:
dockerfile# 示例:安装额外 Python 包 RUN pip install --no-cache-dir \ "package1==x.y.z" \ "package2" # 安装系统依赖 RUN apt-get update && apt-get install -y --no-install-recommends \ package3 \ && rm -rf /var/lib/apt/lists/*
bash./generate-Dockerfile.sh --python-only # 重新生成 docker build -t gpu-jupyter .build/ # 重新构建
设置静态令牌
生成 UUID 令牌:
bashexport JUPYTER_TOKEN=$(uuidgen) echo $JUPYTER_TOKEN # 保存令牌备用
启动容器时传入令牌:
bashdocker run --gpus all -d -it -p 8848:8888 \ -e JUPYTER_TOKEN=${JUPYTER_TOKEN} \ ... # 其他参数
设置自定义密码
http://localhost:8848/login,使用令牌登录后设置新探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 Docker 登录认证访问私有仓库
在 Linux 系统配置镜像服务
在 Docker Desktop 配置镜像
Docker Compose 项目配置
Kubernetes 集群配置 Containerd
K3s 轻量级 Kubernetes 镜像加速
在宝塔面板一键配置镜像
Synology 群晖 NAS 配置
飞牛 fnOS 系统配置镜像
极空间 NAS 系统配置服务
爱快 iKuai 路由系统配置
绿联 NAS 系统配置镜像
QNAP 威联通 NAS 配置
Podman 容器引擎配置
HPC 科学计算容器配置
ghcr、Quay、nvcr 等镜像仓库
无需登录使用专属域名
需要其他帮助?请查看我们的 常见问题Docker 镜像访问常见问题解答 或 提交工单
免费版仅支持 Docker Hub 访问,不承诺可用性和速度;专业版支持更多镜像源,保证可用性和稳定速度,提供优先客服响应。
专业版支持 docker.io、gcr.io、ghcr.io、registry.k8s.io、nvcr.io、quay.io、mcr.microsoft.com、docker.elastic.co 等;免费版仅支持 docker.io。
当返回 402 Payment Required 错误时,表示流量已耗尽,需要充值流量包以恢复服务。
通常由 Docker 版本过低导致,需要升级到 20.x 或更高版本以支持 V2 协议。
先检查 Docker 版本,版本过低则升级;版本正常则验证镜像信息是否正确。
使用 docker tag 命令为镜像打上新标签,去掉域名前缀,使镜像名称更简洁。
来自真实用户的反馈,见证轩辕镜像的优质服务