新手小白使用docker的常用命令
镜像常用命令
查看所有镜像
docker images
拉取镜像 (方式一 常用)
通过镜像名:tag的方式拉取镜像,会自动匹配系统的arm/amd架构。
docker pull <镜像名>:<tag>
拉取镜像 (方式二 不常用)
通过DIGEST方式拉tag下细分arm/amd的镜像。
docker pull <镜像名>@<DIGEST>
上传镜像
docker push <镜像名>:<tag>
删除镜像
docker rmi -f <镜像名>:<tag>或<镜像ID>
该镜像没有被容器使用才可以删除
强制删除镜像
docker image rm <镜像名>:<tag>或<镜像ID>
删除镜像名和tag均为none的镜像
docker image prune
更改镜像的name和tag
docker tag <老镜像name:tag> <新镜像name:tag>
容器常用命令
查看所有容器
docker ps -a
创建容器
docker run -it --gpus=all --name=<要取的容器名> <镜像名>:<tag>或<镜像ID> /bin/bash
-it
:开启命令行交互,--gpus=all
:使容器可用GPU,不加用不了GPU,/bin/bash
:交互路径
可以加-d
参数后台运行容器(守护式运行),加了-d
创建后不进入容器,需用exec进入;不加-d
创建后直接进入容器
进入容器
docker exec -it <容器名>或<容器ID> /bin/bash
-it
:开启命令行交互,/bin/bash
一般为docker ps -a下的COMMAND
容器的启动/停止/重启/杀死
docker start/stop/restart/kill <容器名>或<容器ID>
退出容器
exit
创建容器时未添加-d
参数(可后台运行容器),则执行exit
容器会被关闭
先按ctrl+p
再按ctrl+q
无论创建容器时有没有添加-d
参数,退出容器后都会保持后台运行
删除容器
docker rm -f <容器名>或<容器ID>
容器改名
docker rename <容器名>或<容器ID> <新容器名>
宿主机与容器文件互传
docker cp 本地文件绝对路径 <容器名>或<容器ID>:容器内目标绝对路径
docker cp <容器名>或<容器ID>:容器内文件绝对路径 本地目标绝对路径
将前者传到后者中
目录挂载
docker run -v <宿主机上目录的绝对路径>:<镜像内目录的绝对路径>
打包/导入命令
将容器保存为镜像
docker commit -a="XXX" -m="abcd" <容器ID> <镜像名>:<tag>
将容器保存成镜像,-a
: 指定镜像作者,-m
: 备注
将镜像保存为tar包
docker save -o <tar包名>.tar <镜像名>:<tag>或<镜像ID>
将镜像保存为.tar文件在当前目录
将tar包导入为镜像
docker load -i <tar包名>.tar
在当前目录下从 tar 包导入镜像
将镜像导入为容器
docker run -itd --name=pytorch201_cuda118_python310 --gpus=all -p <本地端口>:<容器端口> <镜像名>:<tag>
通过镜像起容器,-it
:开启命令行交互