基于Nvidia RAPIDS镜像构建的自定义Docker容器无法运行求助
问题分析与解决
你的问题核心是对Docker指令的作用理解有误,以及错误使用了CMD指令:
CMD指令的错误用法
CMD是容器启动时才执行的命令,apt-get install vim执行完成后进程会直接退出,Docker容器会因为主进程退出而立即停止,所以你看不到运行中的容器。安装软件需用RUN指令
要在镜像中预装vim,必须在镜像构建阶段使用RUN指令执行安装命令,这样构建出的镜像本身就包含vim,启动容器后直接可用。apt-get安装的必要操作
安装前先更新软件源(apt-get update),并加上-y参数自动确认安装,避免交互中断构建;安装后清理apt缓存(rm -rf /var/lib/apt/lists/*)可以减小镜像体积。
修正后的Dockerfile
FROM rapidsai/base:25.02a-cuda11.8-py3.12-amd64 WORKDIR /home/rapids # 构建阶段完成vim安装 RUN apt-get update && apt-get install -y vim && rm -rf /var/lib/apt/lists/*
构建与运行步骤
- 构建自定义镜像:
docker build -t samanaghazadeh/custom-docker .
- 运行容器:
docker run --gpus all --pull always --rm -it -d --shm-size=1g --ulimit memlock=-1 --ulimit stack=67108864 samanaghazadeh/custom-docker
- 验证vim是否安装成功:
docker exec -it <容器ID或名称> bash # 输入vim即可测试
另外补充:当你在docker run后追加/bin/bash时,会覆盖Dockerfile中的CMD指令,所以原来的安装命令不会执行,这也是加了bash能启动但vim未安装的原因。
内容的提问来源于stack exchange,提问作者saman
相关产品推荐
相关产品推荐

