
ratnaksha/rlele_research本文档面向高级DSMLP用户(包括学生和教师),旨在指导如何通过自定义Docker容器在工作环境中添加或修改应用程序。
对于支持CUDA的镜像,请切换到cuda-10.1分支获取更多信息。
Docker镜像是打包了应用程序、依赖项和底层操作系统的快照。用户可在任何运行Docker平台的机器上使用相同的Docker镜像,并获得一致的软件功能和行为。DockerHub是公共容器 registry,可用于下载("pull")和上传("push")Docker镜像,类似于GitHub托管git仓库的方式。本指南将通过修改Dockerfile设计自定义Docker镜像,构建镜像并发布到DockerHub。
构建和维护Docker镜像遵循三个基本步骤:构建、共享和部署/测试。可能需要多次重复这些步骤,直至达到预期效果。Docker官方教程展示了通用案例,本文档则专为DSMLP用户定制。
Dockerfile。通过取消注释设置BASE_CONTAINER参数的对应行选择基础容器:
datascience-notebook基础镜像包含conda和数据科学基础Python包(pandas、scipy、matplotlib),基于miniconda。scipy-ml镜像包含更广泛的包(如tensorflow、pytorch),支持CUDA 10,通常用于GPU加速工作流。scipy-ml功能更丰富,但构建过程可能更长,生成的镜像体积更大。使用USER root获取root权限以安装系统包(已预先添加)。
使用apt-get安装系统级包:
htop。apt-get -y install htop ping。安装conda包:
RUN conda install --yes <package1> <package2>一次性安装所有所需conda包。RUN conda clean -tipy减小镜像体积。安装pip包:
pip install --no-cache-dir <package>。保留Dockerfile其余部分不变。
本步骤将使用创建的Dockerfile构建镜像,有两种方式:
docker build -t test .:Docker将根据本地Dockerfile构建镜像,标记为test。若构建失败,记录Docker最后运行的命令并开始调试,编辑Dockerfile后重新运行命令。docker run --rm -it test /bin/bash进入容器测试功能。使用exit退出后容器将自动删除。docker tag test <dockerhub-username>/<dockerhub-repo>,然后推送:docker push <dockerhub-username>/<dockerhub-repo>。docker run -it test /bin/bash启动持久容器,使用CTRL+P-Q分离,通过docker ps找到运行中的容器,执行docker commit CONTAINER_ID <dockerhub-username>/<dockerhub-repo>,然后docker push <dockerhub-username>/<dockerhub-repo>。master,而GitHub默认分支已更改为main。dsmlp-login.ucsd.edu。launch-scipy-ml.sh -i <dockerhub-username>/<dockerhub-repo> -P Always:-P标志强制docker主机同步最新镜像清单。注意:Docker镜像名称格式为<user>/<image>:<tag>,若未指定:<tag>,默认使用:latest。在构建步骤中使用v1或test等标签可控制同一镜像的不同版本。kubectl logs <pod-name>或联系ETS服务台寻求帮助。-n <node-number>到启动命令末尾,使用同一节点减少启动时间(无需重复下载)。CMD ["/bin/bash"]覆盖默认可执行文件。也可手动在dsmlp-login上启动Notebook并端口转发:kubectl port-forward pods/<POD_NAME> <DSMLP_PORT>:8888。manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务