EAF CUDA 开发容器基础镜像
这是一个面向 x86-64 GPU 开发环境的容器镜像,基于 CUDA 12.4、cuDNN 和 Ubuntu 22.04,预装 Python 3.10、JupyterLab、code-server 与 OpenSSH Server。
前置条件
- x86-64 Linux 主机
- Docker 及 NVIDIA Container Toolkit
- 与 CUDA 12.4 兼容的 NVIDIA 驱动
构建
docker build --platform linux/amd64 -t eaf-cuda-dev:12.4 .
可覆盖软件版本或开发用户 UID/GID:
docker build --platform linux/amd64 \
--build-arg CODE_SERVER_VERSION=4.104.2 \
--build-arg JUPYTERLAB_VERSION=4.4.7 \
--build-arg DEV_UID="$(id -u)" \
--build-arg DEV_GID="$(id -g)" \
-t eaf-cuda-dev:12.4 .
运行
镜像默认只提供 dev 用户的交互式 Bash 环境,不会自动启动 JupyterLab、code-server、sshd 或 supervisord:
docker run --rm --gpus all \
-it \
--name eaf-cuda-dev \
-v "$PWD/workspace:/workspace" \
eaf-cuda-dev:12.4
需要时可在容器内手动启动工具:
# JupyterLab
jupyter lab --ip=0.0.0.0 --port=8888 --no-browser \
--ServerApp.root_dir=/workspace --ServerApp.token= \
--ServerApp.password= --ServerApp.allow_remote_access=True
# code-server
code-server --bind-addr 0.0.0.0:8080 --auth none \
--disable-telemetry /workspace
如需使用预置的 SSH 配置和 supervisord 运行层,请以 root 用户启动入口脚本,再按需启动服务:
docker run --rm --gpus all -it --user root \
-e DEV_PASSWORD='replace-with-a-strong-password' \
-p 2222:22 -v "$PWD/workspace:/workspace" \
eaf-cuda-dev:12.4 /usr/local/bin/eaf-entrypoint /bin/bash
入口脚本、start-sshd、eaf-healthcheck 和 supervisord 配置仍保留在镜像中,供手动调用。EXPOSE 仅声明端口,不会自动监听;启动服务时请按需发布对应端口。
验证 GPU 环境
docker exec eaf-cuda-dev nvidia-smi
docker exec eaf-cuda-dev nvcc --version
docker exec eaf-cuda-dev python3 --version
安全说明
手动启动 JupyterLab、code-server 或 SSH 时,它们会按上述配置监听容器网络接口;不要将 8888、8080 或 22 端口直接发布到公网。生产环境应通过防火墙、VPN 或带认证的反向代理限制访问。