目录
1. 使用docker镜像创建新的容器
其中${NAME}表示为容器命名,${IMAGE_NAME}可以使用镜像ID或者镜像名。建议使用ID,因为名字可能很长。-it表示为容器分配伪终端,最后的/bin/bash表示运行bash命令,这样可以让容器一直保持running状态。这样的话就可以使用docker exec进入容器进行交互。
docker run -it --name ${NAME} -d ${IMAGE_NAME} /bin/bash
1.1 创建可用nvidia命令的容器
有时需要在容器中使用nvidia命令,这时需要满足两个要求:
1. 首先基于已经安装了cuda/nvidia的镜像来创建库;例如nvcr.io/nvidia/pytorch:21.12-py3这种开源镜像;
2. 在docker run时,要在前面加上(nvidia-),如下:
nvidia-docker run -it --name ${NAME} -d ${IMAGE_NAME} /bin/bash
1.2 创建时指定docker的shm-size
在容器中运行pytorch时,pytorch会使用容器的共享内存。一般容器创建时,默认共享内存大小为64M。如果需要使用pytorch研究计算机视觉训练,那么肯定不够用,pytorch会报错insufficient shared memory。这时就要扩大容器的共享内存,可以通过这个方法扩大容器的共享内存:
nvidia-docker run -it --shm-size="8g" --name ${NAME} -d ${IMAGE_NAME} /bin/bash
2. 停止容器
docker stop ${COMTAINER_ID}
3. 删除容器
docker rm ${COMTAINER_ID}