Docker 常用命令总结
基础
systemctl start docker # 启动
systemctl stop docker # 停止
systemctl restart docker # 重启
systemctl enable docker # 开机启动服务
systemctl status docker # 查看运行状态
docker info # docker信息
docker version
docker system df # 查看docker各类型文件占用情况
镜像
查看本地镜像列表
docker images
搜索镜像
docker search 镜像名
# 搜索pytorch相关的,并且stars收藏数(点赞)不小于100的镜像
docker search -f stars=100 pytorch
拉取镜像到本地
# 不加tag默认拉取最新
docker pull 镜像名
docker pull 镜像名:tag
运行镜像
docker run 镜像名:Tag
删除镜像
#删除一个
docker rmi -f 镜像名或镜像ID
#删除多个 其镜像ID或镜像用用空格隔开即可
docker rmi -f 镜像名或镜像ID 镜像名或镜像ID 镜像名或镜像ID
#删除全部镜像 -a 意思为显示全部, -q 意思为只显示ID
docker rmi -f $(docker images -aq)
#1停止那些已经退出的容器,2删除容器,3删除镜像
docker ps -a | grep "Exited" | awk '{print $1 }'|xargs docker stop
docker ps -a | grep "Exited" | awk '{print $1 }'|xargs docker rm
docker images|grep none|awk '{print $3 }'|xargs docker rmi
#删除none镜像
docker rmi $(docker images -q -f dangling=true)
保存与加载
docker save 镜像名或镜像ID -o 镜像保存位置与名字
docker save pytorch:dev -o /myimg.tar
docker load -i 镜像文件位置
镜像标签
docker tag SOURCE_IMAGE[:TAG] TARGET_IMAGE[:TAG]
docker tag 源镜像名:TAG 想要生成新的镜像名:新的TAG
容器
docker ps # 查看正在运行的容器
docker ps -a # 查看所有容器,包括停止的
运行容器
# -it 表示 与容器进行交互式启动
# -d 表示可后台运行容器 (守护式运行)
# --privileged 使得容器内的root拥有真正的root权限
# --name 给要运行的容器起的名字
# -p 表示端口映射 本机端口:容器内端口
# -v 表示目录映射 本级目录:容器内目录
# --gpus 调用gpu
# /bin/bash 交互路径
docker run -it -d --name 要取的别名 镜像名:Tag /bin/bash
docker run --gpus all -itd --privileged=true --name event-detector -p 8818:8888 -p 2212:22 -v /mnt/disk1/projects/:/project 镜像名:Tag /bin/bash
停止和删除容器
# 停止容器
docker stop 容器名/容器ID
# 删除一个容器
docker rm -f 容器名/容器ID
# 删除多个容器 空格隔开要删除的容器名或容器ID
docker rm -f 容器名/容器ID 容器名/容器ID 容器名/容器ID
# 删除全部容器 -a 意思为显示全部, -q 意思为只显示ID
docker rm -f $(docker ps -aq)
进入容器
docker exec -it 容器名/容器ID /bin/bash
docker exec -id pytorch-dev bash
退出容器,返回宿主机
# 直接退出 未添加 -d(持久化运行容器) 时执行此参数,容器会被关闭
exit
# 优雅退出 无论是否添加-d 参数 执行此命令容器都不会被关闭
ctrl + p + q
停止容器
docker stop 容器ID/容器名
重启容器
docker restart 容器ID/容器名
启动容器
docker start 容器ID/容器名
文件拷贝
无论容器是否开启都可以进行拷贝
#从容器内 拷出
docker cp 容器ID/名称:容器内路径 容器外路径
#从外部 拷贝文件到容器内
docker cp 容器外路径 容器ID/名称:容器内路径
其他操作
# 查看容器日志
docker logs -f --tail=要查看末尾多少行 默认all 容器ID
docker logs -f 容器ID
docker logs -f --tail=20 容器ID
# 容器随docker服务启动而自动启动
# --restart=always
docker run -itd --name redis-dev -p 8888:6379 --restart=always redis:5.0.5 /bin/bash
# 不想删容器,又想让旧容器设置开机自启,只需修改其启动配置
docker update --restart=always 容器Id 或者 容器名
docker container update --restart=always 容器Id 或者 容器名
# 更换容器名
docker rename 容器ID/容器名 新容器名
# 查看docker各类型文件占用情况
docker system df
docker system df -v
# 清除缓存和停止的容器,未使用中的镜像
docker system prune
WARNING! This will remove:
- all stopped containers
- all networks not used by at least one container
- all volumes not used by at least one container
- all dangling images
- all dangling build cache
评论
匿名评论
隐私政策
你无需删除空行,直接评论以获取最佳展示效果