Docker常用命令速查
docker pull ${CONTAINER NAME} #拉取镜像 docker images #查看本地所有镜像 docker ps #查看所有正在运行的容器,加-q返回id docker ps -a #查看所有容器,加-q返回id docker rmi ${IMAGE NAME/ID} #删除镜像 docker rm ${CONTAINER NAME/ID} #删除容器 docker save ${IMAGE NAME} > ${FILE NAME}.tar #将镜像保存成文件 docker load < ${FILE NAME}.tar #从文件加载镜像 docker start ${CONTAINER NAME/ID} #运行一个以前运行过的容器 docker stop ${CONTAINER NAME/ID} #停止一个正在运行的容器 docker logs ${CONTAINER NAME/ID} #显示运行容器的日志 docker run... #运行一个容器 --name ${container name} #设置容器名称 -p ${host port}:${container port} #映射主机和容器内的端口 -e ${env name}=${env value} #添加环境变量 -d #后台运行 -v ${host folder path}:${container folder path} #将主机目录挂在到容器内 高级用法 # Advance use docker ps -f "status=exited" #显示所有退出的容器 docker ps -a -q #显示所有容器id docker ps -f "status=exited" -q #显示所有退出容器的id docker restart $(docker ps -q) #重启所有正在运行的容器 docker stop $(docker ps -a -q) #停止所有容器 docker rm $(docker ps -a -q) #删除所有容器 docker rm $(docker ps -f "status=exited" -q) #删除所有退出的容器 docker rm $(docker stop $(docker ps -a -q)) #停止并删除所有容器 docker start $(docker ps -a -q) #启动所有容器 docker rmi $(docker images -a -q) #删除所有镜像 docker exec -it ${CONTAINER NAME/ID} /bin/bash #进入容器内 docker exec -it ${CONTAINER NAME/ID} ping ${CONTAINER NAME/ID} #一个容器ping另外一个容器 docker top ${CONTAINER NAME/ID} #显示一个容器的top信息 docker stats #显示容器统计信息(正在运行) docker stats -a #显示所有容器的统计信息(包括没有运行的) docker stats -a --no-stream #显示所有容器的统计信息(包括没有运行的) ,只显示一次 docker stats --no-stream | sort -k8 -h #统计容器信息并以使用流量作为倒序 docker system docker system df #显示硬盘占用 docker system events #显示容器的实时事件 docker system info #显示系统信息 docker system prune #清理文件
$ docker save --help
Usage: docker save [OPTIONS] IMAGE [IMAGE...]
Save one or more images to a tar archive (streamed to STDOUT by default)
Options:
-o, --output string Write to a file, instead of STDOUT
$ docker export --help
Usage: docker export [OPTIONS] CONTAINER
Export a container's filesystem as a tar archive
Options:
-o, --output string Write to a file, instead of STDOUT
docker save 和 docker import得区别:
- docker save保存的是镜像(image),docker export保存的是容器(container);
- docker load用来载入镜像包,docker import用来载入容器包,但两者都会恢复为镜像;
- docker load不能对载入的镜像重命名,而docker import可以为镜像指定新名称。
-
docker save :将一个镜像导出为文件,再使用docker load命令将文件导入为一个镜像,会保存该镜像的的所有历史记录。比docker export命令导出的文件大,很好理解,因为会保存镜像的所有历史记录。
docker export :将一个容器导出为文件,再使用docker import 命令将容器导入成为一个新的镜像,但是相比docker save命令,容器文件会丢失所有元数据和历史记录,仅保存容器当时的状态,相当于虚拟机快照。