当前位置: 首页 > news >正文

5、docker镜像管理命令

1、命令总览

命令(含关键参数)作用出现频率备注
docker buildx build --platform … -t … --push .一次构建并推送多平台镜像高频需先 docker buildx create --use
docker buildx build -o type=docker,dest=xxx.tar .构建后离线导出 tar 包中频只导出单平台;tar 可 U 盘带走
docker save -o xxx.tar img1:tag img2:tag …把已有镜像打包成 tar中频不依赖 buildx;支持多镜像一次性打包
docker load -i xxx.tar从 tar 恢复镜像到本地中频与 save 配对使用;自动恢复 tag
docker tag SOURCE[:TAG] TARGET[:TAG]给镜像打新名字/标签高频打标签后可直接 push
docker rmi 镜像ID/仓库:标签 …删除一个或多个镜像高频加 -f 可强制删除正被容器引用的镜像
docker image prune -a -f清理所有未被使用的镜像中频-a 会删除所有悬空+未使用镜像,慎用
docker history 镜像[:TAG]查看镜像分层历史低频排查“镜像为什么这么大”时很有用

2、docker   buildx*    

2.1、Docker build

命令作用出现频率备注
docker build -t <image_name>:<tag> .根据当前目录中的 Dockerfile 生成镜像高频构建镜像的基本命令
docker build -t myapp:v1 .构建镜像并标记为 myapp:v1高频提供镜像的名称和版本标签
docker build -t myImage -f demo/Dockerfile使用指定目录中的 Dockerfile 构建镜像中频适用于 Dockerfile 不在当前目录的情况
# 构建镜像并标记为 myapp:v1
docker build -t myapp:v1 .# 构建指定标签的 Docker 镜像
docker build -t myImage:v0.1.0 .# 使用指定目录中的 Dockerfile 构建映像
docker build -t myImage -f demo/Dockerfile

2.2、docker buildx create

命令作用出现频率备注
docker buildx create --name <builder_name>创建一个新的 builder 实例中频可以指定 builder 的名称
docker buildx create --name <builder_name> --driver docker-container创建使用 Docker 容器作为驱动的 builder 实例中频适用于需要远程构建的场景
docker buildx create --name <builder_name> --driver kubernetes在 Kubernetes 集群中创建 builder 实例低频需要 Kubernetes 环境支持
docker buildx create --name <builder_name> --bootstrap创建并自动启动 builder 实例中频简化创建和启动流程
docker buildx create --name <builder_name> --use创建新的 builder 并将其设为默认高频之后的所有构建命令将使用此 builder
# 创建一个新的名为 mybuilder 的 builder 实例
docker buildx create --name mybuilder# 创建使用 Docker 容器作为驱动的 builder 实例
docker buildx create --name mybuilder --driver docker-container# 创建并自动启动 builder 实例
docker buildx create --name mybuilder --bootstrap# 创建新的 builder 并将其设为默认
docker buildx create --name mybuilder --use# 创建一个自定义 builder 实例并立即激活
docker buildx create --name mybuilder --use

2.3、docker buildx use

命令作用出现频率备注
docker buildx use <builder_name>切换到指定的 builder 实例高频切换后所有构建命令将使用此 builder
docker buildx use --name <builder_name>切换到指定名称的 builder 实例中频需要指定 builder 的名称
docker buildx use --use将当前 builder 设为默认中频后续命令无需指定 builder 名称
docker buildx use --bootstrap创建并切换到新的 builder 实例中频适用于需要快速创建并使用新 builder 的场景
docker buildx use --list列出所有可用的 builder 实例低频显示当前所有 builder 的名称和状态
# 切换到名为 mybuilder 的 builder 实例
docker buildx use mybuilder# 切换到名为 mybuilder 的 builder 实例,并将其设为默认
docker buildx use --name mybuilder --use# 创建新的 builder 实例并立即切换到它
docker buildx use --bootstrap# 列出所有可用的 builder 实例
docker buildx use --list# 切换到默认的 builder 实例
docker buildx use default

2.4、docker buildx ls

命令作用出现频率备注
docker buildx ls列出所有可用的 builder 实例中频显示所有 builder 的名称、状态和节点信息
docker buildx ls -q仅列出 builder 实例的名称低频适合脚本处理,输出名称列表
docker buildx ls --quiet同上,仅输出 builder 名称低频等同于 -q
docker buildx ls --format "table {{.Name}}\t{{.DriverName}}"自定义输出格式低频根据需要显示不同信息
# 列出所有可用的 builder 实例及其详细信息
docker buildx ls# 仅列出所有 builder 的名称
docker buildx ls -q# 列出 builder 名称和使用的驱动名称
docker buildx ls --format "table {{.Name}}\t{{.DriverName}}"# 列出所有 builder,包括详细信息
docker buildx ls --all

2.5、docker buildx build

命令作用出现频率备注
docker buildx build使用 BuildKit 构建镜像高频默认使用当前激活的 builder
--platform指定目标平台(架构/操作系统)高频支持多平台构建
--push构建完成后推送到注册中心高频需要先登录
--output指定构建产物输出中频支持导出为 tar 或其他格式
--no-cache构建时不使用缓存中频强制重新构建所有层
--load构建完成后将镜像导入本地环境中频适用于不想推送到远程的场景
--build-arg传递构建参数中频动态定义环境变量
-标签构建时设置镜像标签中频可以设置版本标签
# 使用当前激活的 builder 构建镜像
docker buildx build -t myimage:latest .# 指定目标平台构建并推送镜像
docker buildx build --platform linux/amd64,linux/arm64 -t myregistry/myimage:latest --push .# 构建完成后将镜像导入本地环境
docker buildx build -t myimage:latest --load .# 构建时不使用缓存,强制重新构建所有层
docker buildx build --no-cache -t myimage:latest .# 构建时传递构建参数
docker buildx build --build-arg HTTP_PROXY=http://proxy:8080 -t myimage:latest .# 构建并导出为 tar 文件
docker buildx build -t myimage:latest -o type=docker,dest=myimage.tar .

2.6、docker buildx bake

命令作用出现频率备注
docker buildx bake基于文件进行构建中频允许用户在一个命令中定义多个构建配置和目标平台,实现自动化批量构建和发布跨平台镜像
docker buildx bake -f <文件>指定构建定义文件高频支持 HCL、JSON 或 YAML 文件格式
docker buildx bake <目标>构建指定目标高频可以指定一个或多个目标进行构建
docker buildx bake --push构建完成后推送到注册中心中频需要先登录
docker buildx bake --load构建完成后将镜像导入本地环境中频适用于不想推送到远程的场景
docker buildx bake --no-cache构建时不使用缓存中频强制重新构建所有层
docker buildx bake --set <覆盖配置>覆盖目标值中频例如 targetpattern.key=value
# 构建所有目标
docker buildx bake# 构建特定目标
docker buildx bake myapp# 构建特定目标并推送
docker buildx bake --push myapp# 构建特定目标并导入到本地环境
docker buildx bake --load myapp# 构建特定目标不使用缓存
docker buildx bake --no-cache myapp# 构建特定目标并覆盖配置
docker buildx bake --set "myapp.tags=latest" myapp

2.7、docker buildx inspect

命令作用出现频率备注
docker buildx inspect显示指定 builder 实例的详细信息低频包括节点信息、支持的平台等
--format定制输出格式低频用于脚本处理,输出特定信息
# 显示名为 mybuilder 的 builder 实例的详细信息
docker buildx inspect mybuilder# 以 JSON 格式输出 builder 实例的信息,便于脚本处理
docker buildx inspect mybuilder --format "{{json .}}"# 仅输出 builder 实例的节点信息
docker buildx inspect mybuilder --format "{{json .Node }}"

2.8、docker buildx du

命令作用出现频率备注
docker buildx du显示当前所选构建器的磁盘使用情况中频包括缓存条目的 ID、大小以及最后访问时间。末尾的 TOTAL 行表示当前构建器的构建缓存占用的总磁盘空间。
--filter提供过滤值低频用于过滤输出结果
--verbose提供更详细的输出中频显示可变和共享状态,以及有关相应层的附加信息
--builder覆盖配置的构建器实例中频检查特定构建器的磁盘使用情况
# 查看当前构建器的磁盘使用情况
docker buildx du# 使用详细输出来检查磁盘使用记录
docker buildx du -v# 检查特定构建器实例的磁盘使用情况
docker buildx du --builder mybuilder

2.9、docker buildx prune

命令作用出现频率备注
docker buildx prune清理构建缓存中频包括内部镜像和未使用的构建缓存条目
docker buildx prune --filter根据条件筛选清理低频可以指定时间、类型等条件进行筛选清理
docker buildx prune --keep-storage清理至特定存储大小低频保留指定大小的构建缓存
docker buildx prune --all清理所有构建缓存低频包括内部镜像和所有构建缓存条目
# 清理所有构建缓存
docker buildx prune# 清理所有构建缓存,包括内部镜像
docker buildx prune --all# 清理构建缓存,保留最近5分钟的数据
docker buildx prune --filter "until=5m"# 清理构建缓存,保留1GB的存储空间
docker buildx prune --keep-storage 1g

2.10、docker buildx stop

命令作用出现频率备注
docker buildx stop <builder>停止指定的 builder 实例中频停止 builder 实例,释放资源
docker buildx stop --all停止所有 builder 实例低频一次性停止所有 builder 实例
# 停止名为 mybuilder 的 builder 实例
docker buildx stop mybuilder# 列出所有 builder 实例并停止
docker buildx ls -q | xargs -n 1 docker buildx stop# 停止所有 builder 实例
docker buildx stop --all

2.11、docker buildx rm

命令作用出现频率备注
docker buildx rm <builder>删除指定的 builder 实例中频删除后无法再使用该实例
docker buildx rm --all删除所有 builder 实例低频一次性删除所有 builder 实例
docker buildx rm -f <builder>强制删除指定的 builder 实例中频即使 builder 正在运行也会被删除
# 删除名为 mybuilder 的 builder 实例
docker buildx rm mybuilder# 强制删除名为 mybuilder 的 builder 实例(如果正在运行也会被删除)
docker buildx rm -f mybuilder# 删除所有 builder 实例
docker buildx rm --all

2.12、docker buildx imagetools

命令作用出现频率备注
docker buildx imagetools create创建新的镜像低频合并多个源镜像内容,常用于构建复杂应用
docker buildx imagetools inspect检查 Docker 镜像的详细信息中频包括单平台和多平台镜像的配置、分层结构和元数据
# 使用 docker buildx imagetools create 命令创建新镜像
docker buildx imagetools create my-multi-stage-image:latest ~/project# 检查单平台 Docker 镜像的详细信息
docker buildx imagetools inspect hello-world# 检查多平台 Docker 镜像的详细信息
docker buildx imagetools inspect alpine

3、docker save

命令作用出现频率备注
docker save -o xxx.tar IMAGE[:TAG]…把本地镜像打包成 tar 归档中频不依赖网络,离线/内网分发必备
docker save IMAGE… | gzip > xxx.tar.gz打包并实时压缩低频节省磁盘与传输带宽
docker save IMAGE | docker load管道直连,无需中间文件低频两台机器都有 Docker 时最快速
docker save --help查看全部参数极低参数很少,几乎用不到其它选项
# ---------- docker save 常用示例 ----------
# 1) 打包单个镜像
docker save -o nginx_alpine.tar nginx:alpine# 2) 一次打包多个镜像到一个 tar
docker save -o web_cache.tar redis:7 alpine:3.18# 3) 打包并实时压缩
docker save nginx:alpine | gzip > nginx_alpine.tar.gz# 4) 管道直连:A 机器 → B 机器,无需中间文件
docker save myapp:latest | ssh user@192.168.1.100 "docker load"# 5) 查看 tar 包里包含哪些镜像
tar -tf web_cache.tar | grep "\.json" | head

4、docker   load

       Load an image from a tar archive or STDIN

命令作用出现频率备注
docker load -i xxx.tar从 tar 归档导入镜像(含 tag)高频与 docker save 配套
docker load < xxx.tar重定向导入(同上)中频写法差异,效果一致
docker load --quiet静默导入低频CI/CD 日志更干净
docker load(管道用法)直接接收 stdin 流低频

可结合 ssh/curl 实现无文件传输

# ---------- docker load 常用示例 ----------
# 1) 从本地 tar 导入镜像
docker load -i web_cache.tar# 2) 重定向导入(效果同上)
docker load < web_cache.tar# 3) 静默导入(不输出详细进度)
docker load --quiet -i web_cache.tar# 4) 管道直连:远程机器把 tar 流过来直接 load
ssh user@192.168.1.100 "cat /tmp/web_cache.tar" | docker load# 5) 解压并导入(tar.gz 场景)
gunzip -c web_cache.tar.gz | docker load

5、docker   tag

        Create a tag TARGET_IMAGE that refers to SOURCE_IMAGE

命令作用出现频率备注
docker tag <src[:tag]> <dst[:tag]>为本地镜像创建新名字/标签高频仅创建引用,不拷贝数据
docker tag <imageID> <dst[:tag]>按 ID 打标签中频适合无原标签场景
docker tag <src> <registry>/repo:<ver>给推送仓库做准备高频推送前必做
# ---------- docker tag 常用示例 ----------
# 1) 为已有镜像 nginx:alpine 创建本地新标签
docker tag nginx:alpine mynginx:latest# 2) 按镜像 ID 打标签(假设 ID 为 1a2b3c4d)
docker tag 1a2b3c4d myapp:v1.0.0# 3) 为推送私有仓库打标签
docker tag myapp:v1.0.0 harbor.example.com/library/myapp:v1.0.0# 4) 一次镜像多版本标签(方便回滚)
docker tag myapp:v1.0.0 myapp:stable
docker tag myapp:v1.0.0 myapp:1.0
docker tag myapp:v1.0.0 myapp:latest# 5) 批量重命名脚本示例(把旧仓库名统一换成新仓库名)
for t in $(docker images --format '{{.Repository}}:{{.Tag}}' | grep '^oldrepo/'); donew_name=$(echo "$t" | sed 's#^oldrepo/#newrepo/#')docker tag "$t" "$new_name"
done

6、docker rmi  

      Remove one or more images

命令作用出现频率备注
docker rmi <镜像:标签>按仓库名+标签删除镜像高频删除所有同名标签即删除镜像
docker rmi <IMAGE_ID>按镜像 ID 删除高频ID 可简写前 3 位以上
docker rmi -f <镜像>强制删除(含正在运行的容器)中频会先停止并删除相关容器
docker rmi $(docker images -q)批量删除所有本地镜像低频危险!请确认无重要数据
# ---------- docker rmi 常用示例 ----------
# 1) 删除单个镜像(按仓库:标签)
docker rmi nginx:alpine# 2) 删除单个镜像(按镜像 ID,前 4 位即可)
docker rmi 7d8e# 3) 强制删除(即使有容器正在使用)
docker rmi -f myapp:latest# 4) 一次删除多个镜像
docker rmi redis:7 alpine:3.18 busybox:1.35# 5) 批量删除所有“悬空”镜像(<none>:<none>)
docker rmi $(docker images -f "dangling=true" -q)# 6) 危险!一次性清空本地所有镜像(慎用)
# docker rmi $(docker images -q)

7、docker   image

   Manage images

子命令作用出现频率备注
docker image ls列出本地镜像高频可简写 docker images
docker image rm <镜像>删除指定镜像高频与 docker rmi 等价
docker image prune [-a -f]清理未被使用的镜像中频-a 包含非悬空镜像
docker image inspect <镜像>查看镜像元数据中频JSON 格式,调试利器
docker image history <镜像>查看镜像分层历史低频排查镜像大小来源
docker image tag给镜像打标签低频与 docker tag 等价
# ---------- docker image 常用示例 ----------
# 1) 列出本地镜像(简洁格式)
docker image ls# 2) 仅显示镜像 ID(脚本用)
docker image ls -q# 3) 删除指定镜像
docker image rm nginx:alpine# 4) 强制批量删除所有悬空镜像
docker image prune -f# 5) 强制删除所有未被容器引用的镜像(慎用)
docker image prune -a -f# 6) 查看镜像完整元数据
docker image inspect nginx:alpine# 7) 查看镜像分层历史(带大小)
docker image history --no-trunc nginx:alpine# 8) 给镜像打标签(与 docker tag 等价)
docker image tag nginx:alpine harbor.example.com/library/nginx:v1

8、docker history

    Show the history of an image

命令作用出现频率备注
docker history <镜像>查看镜像分层历史中频快速定位“镜像为何这么大”
--no-trunc显示完整命令低频解决输出被截断
--format自定义输出低频用于脚本或统计
# ---------- docker history 常用示例 ----------
# 1) 查看镜像分层历史(默认表格式)
docker history nginx:alpine# 2) 显示完整命令(不被截断)
docker history --no-trunc nginx:alpine# 3) 仅查看镜像 ID 与大小(脚本友好)
docker history --format "table {{.ID}}\t{{.Size}}" nginx:alpine# 4) 按层大小排序(由大到小)
docker history --format "{{.Size}}\t{{.CreatedBy}}" nginx:alpine | sort -hr# 5) 配合 jq 统计总大小(需安装 jq)
docker history --format '{{json .}}' nginx:alpine | jq -s 'map(.Size | tonumber) | add' | numfmt --to=iec
http://www.dtcms.com/a/322635.html

相关文章:

  • Qt/C++开发监控GB28181系统/实时监测设备在线离线/视频预览自动重连/重新点播取流/低延迟
  • MySQL 复制表详细说明
  • 某金融APP防护检测分析
  • PromptPilot打造高效AI提示词
  • 智慧农业-无人机视角庄稼倒伏农作物倒伏检测数据集VOC+YOLO格式541张1类别
  • 计算机视觉CS231n学习(6)
  • 跨境电商系统开发:ZKmall开源商城的技术选型与代码规范实践
  • 3D感知多模态(图像、雷达感知)
  • node.js 零基础入门
  • LangChain-Unstructured 基础使用:PDF 与 Markdown 处理解析
  • SwiftUI 登录页面键盘约束冲突与卡顿优化全攻略
  • 为什么动态导入中Vite无法正确解析别名路径?
  • 如何在 Excel 中快速求和?【图文详解】Excel求和技巧,Excel求和公式大全,多种方式求和
  • 【线性代数】6二次型
  • 【线性代数】目录
  • 【线性代数】线性方程组与矩阵——(2)矩阵与线性方程组的解
  • sqli-labs靶场less51~less65
  • Debian防火墙 ufw
  • DataDex 多样化 JSON 服务——使用教程
  • K8s-pod控制器
  • Web前端之Vue框架
  • Java Stream API 实战:提升集合处理的效率与可读性!
  • 使用 Visual Studio 2022 编译 PortAudio 项目
  • 华为实验NAT
  • spring.config.import 不存在
  • 文生图工具之ComfyUI从原理到实践的全维度剖析
  • 矩阵的条件数 向量的条件数
  • 【面试场景题】通过LinkedHashMap来实现LRU与LFU
  • 时序分解 | MATLAB实现SAO-VMD雪消融算法优化变分模态分解
  • 使用流式函数解决v语言zstd程序解压缩失败问题