一、docker的安装:
1、docker-ce 是社区版,docker-ee 企业版 ,首先安装docker-ce:
curl https://get.docker.com | sh && sudo systemctl --now enable docker
2、安装nvidia-docker(参考: https://docs.nvidia.com/datacenter/cloud-native/container-toolkit/install-guide.html#docker):
distribution=$(. /etc/os-release;echo $ID$VERSION_ID) && curl -s -L https://nvidia.github.io/nvidia-docker/gpgkey | sudo apt-key add && curl -s -L https://nvidia.github.io/nvidia-docker/$distribution/nvidia-docker.list | sudo tee /etc/apt/sources.list.d/nvidia-docker.list
3、继续安装:
sudo apt-get update
sudo apt-get install -y nvidia-docker2
sudo systemctl restart docker
4、测试,输入以下命令,若能出现显存容量,即成功:
sudo docker run --rm --gpus all nvidia/cuda:11.0-base nvidia-smi
二、Docker的基本操作:
1、docker的启动操作
systemctl start docker # 启动Docker
sudo service docker restart # 重启docker服务
docker version # 查看当前版本号,是否启动成功
systemctl enable docker # 设置开机自启动
docker images # 查看下载的docker镜像
2、docker的卸载
yum remove docker-ce docker-ce-cli containerd.io # 1. 卸载依赖
rm -rf /var/lib/docker # 2. 删除资源 . /var/lib/docker是docker的默认工作路径
3、docker基础命令
docker version #查看docker的版本信息
docker info #查看docker的系统信息,包括镜像和容器的数量
docker 命令 --help #帮助命令(可查看可选的参数)
docker COMMAND --help
4、 docker镜像命令
docker images # 查看本地主机的所有镜像
docker pull 镜像名 # 需要的镜像可以在https://hub.docker.com/中搜索,
docker rmi 删除镜像
docker rmi -f 镜像id
5、 docker容器命令
docker run -it 镜像名 /bin/bash # 创建容器并进入docker容器
# 后面的/bin/bash的作用是表示载入容器后运行bash ,docker中必须要保持一个进程的运行,要不然整个容器启# 动后就会马上kill itself,这个/bin/bash就表示启动容器后启动bash。
# -it 表明使用交互方式运行,进入容器查看内容
# 创建可以使用GPU的容器
docker run --gpus all --name 容器名 -d -t 镜像id
docker run --gpus all --name 容器名 -d -t -p 8000:8000 镜像id /bin/bash # -p 为设置主机和容器的端口号
docker run --gpus all --name CNN -d -t -p 22:22 40098e90b2f2 /bin/bash # -p 为设置主机和容器的端口号
docker port 54a270abdff2 # 查询当前容器的端口号
docker ps # 列出当前正在运行的容器
docker ps -a # 列出所有容器的运行记录
docker rm 容器id # 删除指定的容器,不能删除正在运行的容器,强制删除使用 rm -f
docker rm -f 容器id # 强制删除指定的容器
docker start 容器id # 启动容器
docker restart 容器id # 重启容器
docker stop 容器id # 停止当前运行的容器
docker kill 容器id # 强制停止当前容器
docker logs -tf 容器id # 显示日志
docker logs --tail number 容器id # num为要显示的日志条数
docker top c703b5b1911f # 查看容器中进程信息
docker exec -it 63b71a36af54 /bin/bash # 进入当前正在运行的容器
docker attach c703b5b1911f # 进入当前正在运行的容器
ctrl+D # 退出容器终端,回到宿主机
注意:
1、可以把容器理解为一台小型的liunx系统,和平常的linux系统操作类似;
6、docker容器和宿主机的互相拷贝(以下命令在容器外操作)
docker cp 容器id:容器内路径 目的主机路经 #拷贝容器的文件到主机中
docker cp 目的主机路径 容器id:容器内路径 #拷贝宿主机的文件到容器中
7、docker 环境打包
1、先删除容器内安装包缓存等(清理无用的缓存及安装包)
rm -rf ~/.cache/pip
conda clean -p //删除没有用的包
conda clean -t //tar打包
conda clean -y -all //删除所有的安装包及cache
apt-get clean
2、导出容器为本地镜像文件
sudo docker export 015885999f6b > cuda115torch110.tar //015885999f6b为容器id
8、在新机器上 导入docker环境压缩包
docker import cuda115torch110.tar cuda115torch110 // cuda115torch110为新的镜像名称