一、容器操作
获取镜像
前往Docker Hub搜索配置好的半成品镜像,使用提示的pull指令可以进行拖拽
sudo docker pull kasurashan/vidt
启动容器
镜像和容器的关系,就类似于类和实例的关系,程序和进程的关系。前者是静态的后者是动态的。
sudo docker run -it kasurashan/vidt /bin/bash
- -i: 交互式操作。
- -t: 终端。
- kasurashan/vidt : kasurashan/vidt 镜像。
- /bin/bash:放在镜像名后的是命令,这里我们希望有个交互式 Shell,因此用的是 /bin/bash。
挂载本机共享文件夹并启动容器
sudo docker run -v 本机目录:容器内目录 -it kasurashan/vidt /bin/bash
包含启动GPU创建新容器
sudo docker run -v 本机目录:容器内目录 --gpus all -it kasurashan/vidt /bin/bash
退出容器
exit
展示目前所有容器
sudo docker ps -a
删除容器
sudo docker rm -f 容器ID
启动容器
sudo docker start 容器ID
停止容器
sudo docker stop 容器ID
进入容器终端
sudo docker exec -it 容器ID /bin/bash
使用该命令进入容器终端后再exit退出并不会终止容器
将容器打包为快照
sudo docker export 容器ID > 文件名.tar
所谓快照为当前容器截止目前的状态,快照可以重新导入为镜像
导入快照作为新镜像
sudo docker import 绝对路径 镜像名
二、镜像操作
展示所有的镜像
sudo docker images
删除镜像
sudo docker rmi 镜像名
将容器更新到镜像上
sudo docker commit 容器ID 镜像名
向镜像添加TAG
sudo docker tag 镜像ID 镜像名:TAG
三、本地机器与容器传文件
从本地将文件传到容器内
sudo docker cp 本地文件 容器ID:容器路径
同理,从容器向本地机器传文件
sudo docker cp 容器ID:文件 本地机器路径
四、关于进行GPU深度学习的一些注意事项
sudo docker run -it --gpus all -e NVIDIA_DRIVER_CAPABILITIES=compute,utility -e NVIDIA_VISIBLE_DEVICES=all --shm-size="10g" 镜像名:tag /bin/bash
注意设置共享内存,以及NVIDIA驱动可用性参数设置