Docker快速入门——第四章Docker镜像

作者:温柔一只鬼.日期:2025/10/18

传送门:

Docker快速入门——第一章Docker入门

Docker快速入门——第二章Docker基本概念

Docker快速入门——第三章Docker环境安装

一、搜索镜像

在Docker中,通过如下命令搜索镜像:

docker search [OPTIONS] TERM

其中TERM是你要搜索的镜像关键词

常用选项(OPTIONS):

--limit N:限制返回结果的数量(默认为25,最大为100)

--filter"is-oddicial=true":只显示官方镜像

--filter"is-automated=true":只显示自动构建的镜像

--filter"stars=N":只显示收藏数(stars)大于等于N的镜像

输出字段说明:

  • NAME:镜像名称
  • DESCRIPTION:镜像描述
  • STARS:用户收藏(点赞)数量,反映镜像的受欢迎程度
  • OFFICIAL:是否为官方镜像([OK] 表示是)
  • AUTOMATED:是否为自动构建镜像([OK] 表示是)

docker search 只能搜索 Docker Hub 上的公共镜像,无法搜索私有仓库或第三方镜像仓库(如阿里云、Harbor 等)

docker search --help

执行该命令可以查看 docker search 命令的完整帮助信息:

1Usage:  docker search [OPTIONS] TERM
2
3Search the Docker Hub for images
4
5Options:
6  -f, --filter filter   Filter output based on conditions provided
7                        (e.g., 'is-automated=true', 'is-official=true', 'stars=10')
8      --format string   Pretty-print search using a Go template
9      --help            Print usage
10      --limit int       Max number of search results (default 25, max 100)
11      --no-trunc        Don't truncate output

-f, --filter filter
根据指定条件过滤结果。支持的过滤器包括:

is-official=true|false:是否为官方镜像

is-automated=true|false:是否为自动构建镜像

stars=N:仅显示收藏数 ≥ N 的镜像

--format string
使用 Go 模板自定义输出格式。

--limit int
限制返回结果数量(默认 25,最大 100)

--no-trunc
不截断输出(例如完整显示长描述)

--help
显示帮助信息(即当前命令的作用)


二、Docker拉取&下载镜像

在 Docker 中,拉取(下载)镜像使用的是 docker pull 命令。该命令会从配置的镜像仓库(默认是 Docker Hub)下载指定的镜像到本地。docker pull 仅下载镜像,不会创建容器。

docker pull [OPTIONS] NAME[:TAG|@DIGEST]

NAME:镜像名称(如 nginx、redis、ubuntu)
TAG:镜像标签(如 latest、1.21、alpine),默认为 latest
DIGEST:镜像的 SHA256 哈希值(用于精确拉取)

常用选项(OPTIONS):

--platform:指定平台(如linux/amd64\linux/arm64),用于多架构镜像

--all-tags:不推荐:拉取该镜像的所有标签(慎用,可能下载大量数据)

--q,--quiet:静默模式,仅输出镜像ID

注意事项:

  1. 默认仓库是 Docker Hub
    如果未指定仓库地址(如 nginx),Docker 会从 docker.io/library/nginx 拉取。
  2. latest 不一定是最新的
    latest 只是一个标签,由镜像维护者定义,不保证是最新版本。生产环境建议使用明确版本号(如 nginx:1.25)。
  3. 网络问题
    国内用户可能因网络问题拉取缓慢,可配置镜像加速器(如阿里云、中科大镜像源)。

常见用法示例
1. 拉取最新版镜像(默认 latest 标签)

1docker pull nginx
2

等价于:

docker pull nginx:latest

2.拉取指定版本的镜像

1docker pull redis:7.0
2docker pull ubuntu:22.04

3.拉取完整镜像名(含仓库地址)

1# 从 Docker Hub 拉取(可省略 registry)
2docker pull library/ubuntu:20.04
3
4# 从第三方仓库拉取(如阿里云)
5docker pull registry.cn-hangzhou.aliyuncs.com/library/nginx:latest

4.拉取镜像并验证摘要(Digest)

docker pull nginx@sha256:abc123...(完整哈希值)

5.指定平台拉取

docker pull --platform linux/amd64 alpine


三、Docker查看镜像信息

在 Docker 中,有多种命令可以查看镜像(Image)的相关信息,从简略列表到详细元数据。以下是常用的查看镜像信息的方法:

1. 列出本地所有镜像(简略信息)

1docker images
2# 或
3docker image ls

输出字段说明:

REPOSITORY:镜像仓库名(如nginx,redis)

TAG:镜像标签(如latest,1.21)

IMAGE ID:镜像唯一ID(SHA256前缀)

CREATED:镜像创建时间

SIZE:镜像大小

常用选项:

-q,-quiet:仅显示镜像ID

-a,--all:显示所有镜像(包括中间层镜像)

--filter:过滤结果(如dangling=true显示悬空镜像)

2.查看镜像详细信息(完整元数据)

docker inspect <IMAGE>

其中 <IMAGE> 可以是:

镜像名(如 nginx)
镜像名:标签(如 nginx:1.21)
镜像 ID(如 605c77e624dd)

输出内容(JSON 格式)包括:

  • 镜像架构(Architecture
  • 操作系统(Os
  • 创建时间(Created
  • 镜像层(RootFS / Layers
  • 环境变量(Config.Env
  • 默认启动命令(Config.Cmd
  • 暴露的端口(Config.ExposedPorts
  • 标签(Labels

3. 查看镜像的历史构建层(Layer History)

docker history <IMAGE>

输出字段:

IMAGE层的镜像 ID 或<missing>(未保存的中间层)
CREATED该层创建时间
CREATED BY构建该层所用的 Dockerfile 指令
SIZE该层大小
COMMENT注释(通常为空)

总结

列出所有镜像docker images
查看详细元数据docker inspect <IMAGE>
查看构建历史docker history <IMAGE>
显示镜像摘要docker images --digests
仅获取镜像 IDdocker images -q

四、导入导出镜像

在 Docker 中,导入和导出镜像是用于在不同主机之间迁移镜像的常用操作。注意:这里指的是 镜像(Image) 的导入导出,而不是容器(Container)的快照。

Docker 提供了两组相关但不同的命令:

导出镜像为 tar 文件docker save保存镜像(含所有层和元数据)
从 tar 文件加载镜像docker load恢复镜像到本地镜像库
导出容器文件系统docker export仅导出容器的文件系统(不是镜像
从 tar 创建镜像docker import从export的 tar 创建新镜像(无历史层

1.导出镜像:docker save

将一个或多个镜像保存为 tar 归档文件(保留完整镜像结构、标签、历史层)。

1# 导出单个镜像
2docker save -o nginx.tar nginx:latest
3
4# 或使用重定向
5docker save nginx:latest > nginx.tar
6
7# 导出多个镜像到同一个 tar 文件
8docker save -o myimages.tar nginx:latest redis:7.0 ubuntu:22.04

"生成的 nginx.tar 包含完整的镜像数据,可跨平台传输。"

2.导入镜像:docker load

从 tar 文件加载镜像回本地镜像库(保留原始标签和镜像 ID)。

1# 从 tar 文件加载镜像
2docker load -i nginx.tar
3
4# 或使用重定向
5docker load < nginx.tar
  • 保留原始镜像的所有层、标签、元数据
  • 镜像 ID 不变(便于一致性校验)
  • 支持多镜像打包

五、Docker删除镜像

1. 通过镜像名和标签删除

1docker rmi nginx:latest
2# 或
3docker image rm nginx:latest

2. 通过镜像 ID 删除

docker rmi 605c77e624dd

如果该镜像有正在运行的容器或已停止但未删除的容器依赖它,Docker 会拒绝删除。

解决方法:

先删除相关容器:

1# 查看使用该镜像的容器
2docker ps -a --filter "ancestor=nginx:latest"
3
4# 删除容器(先停止再删除)
5docker stop container_id
6docker rm container_id

再删除镜像。

强制删除 (慎用)

如果确定要强制删除(即使有容器引用),可使用 -f 参数:

docker rmi -f nginx:latest


Docker快速入门——第四章Docker镜像》 是转载文章,点击查看原文


相关推荐


【搞发🌸活】不信书上那套理论!亲测Javascript能卡浏览器Reader一辈子~
大怪v2025/10/16

点进来的前端佬,先别走! 让我详细给你逼逼叨! 在很久很久以前,前端圈就广泛流传,Javascript的加载和执行,都会阻塞浏览器Render。 然后过了这些日子,作为一名优秀的前端佬的意识爆发。 按照上面的说法,那是不是可以构造一个Javascript程序,让后续的CSS以及HTML文本永远都不能被解析Render到? 喔,觉的挺来劲的,说干就干! 前言 一开始构建了这么一个HTML,如下: <!DOCTYPE html> <html> <head> <meta charset="UT


算法刷题-数组篇之螺旋矩阵II(超简单)
destiny_tool2025/10/15

力扣题目链接https://leetcode.cn/problems/spiral-matrix-ii/ 1.1 问题描述: 给定一个正整数 n,生成一个包含 1 到 n^2 所有元素,且元素按顺时针顺序螺旋排列的正方形矩阵。 示例: 输入: 3 输出: [ [ 1, 2, 3 ],                        [ 8, 9, 4 ],                        [ 7, 6, 5 ] ]    1.2 思路: 本题具体考察


Spring Boot 3.x核心特性与性能优化实战
奋斗的小monkey2025/10/14

Spring Boot 3.x核心特性与性能优化实战 前言 随着Java生态的持续演进,Spring Boot 3.x作为最新版本带来了许多重大改进和创新特性。本文将深入探讨Spring Boot 3.x的核心技术亮点,并结合实际案例展示性能优化的最佳实践。 1. 技术栈升级 Spring Boot 3.x正式要求使用JDK 17及以上版本,这标志着Spring框架全面拥抱现代Java特性。 // 传统方式 @Configuration public class AppConfig {


黑马商城微服务项目准备工作并了解什么是微服务、SpringCloud
Le1Yu2025/10/12

目录 一、后端项目的导入以及启动服务的配置 二、前端nginx项目的导入 三、linux虚拟机MySql安装 四、单体架构与微服务         单体架构        :         微服务: 五、SpringCloud 一、后端项目的导入以及启动服务的配置         将资料当中的项目下载下来后用idea打开;按Alt+8打开Services面板,按照指示添加启动项:         找到Spring Boot:         点击后应该


从0到1微调DeepSeek大模型,LoRA+4位量化让24GB显卡也能玩转
陈敬雷-充电了么-CEO兼CTO2025/10/10

注:此文章内容均节选自充电了么创始人,CEO兼CTO陈敬雷老师的新书《GPT多模态大模型与AI Agent智能体》(跟我一起学人工智能)【陈敬雷编著】【清华大学出版社】 清华《GPT多模态大模型与AI Agent智能体》书籍配套视频课程【陈敬雷】 文章目录 GPT多模态大模型与AI Agent智能体系列二百一十六从0到1微调DeepSeek大模型,LoRA+4位量化让24GB显卡也能玩转一、为什么要微调DeepSeek?从“通才”到“专家”的蜕变二、微调核心原理:从损失函数到数据策略


基于Hadoop的车辆二氧化碳排放量分析与可视化系统|基于Spark的车辆排放量实时监控与预测系统|基于数据挖掘的汽车排放源识别与减排策略系统
计算机源码社2025/10/9

💕💕作者:计算机源码社 💕💕个人简介:本人八年开发经验,擅长Java、Python、PHP、.NET、Node.js、Spark、hadoop、Android、微信小程序、爬虫、大数据、机器学习等,大家有这一块的问题可以一起交流! 💕💕学习资料、程序开发、技术解答、文档报告 💕💕如需要源码,可以扫取文章下方二维码联系咨询 💕💕Java项目 💕💕微信小程序项目 💕💕Android项目 💕💕Python项目 💕💕PHP项目 💕💕ASP.NET项目 💕�


Flutter 应用生命周期:使用 AppLifecycleListener 阻止应用崩溃
JarvanMo2025/10/8

当我刚开始进行 Flutter 开发时,应用生命周期(App Life Cycle)感觉就像一个神秘的黑盒子。为什么我点击 Home 键时我的计时器会停止?为什么我恢复应用时相机有时会崩溃?朋友们,答案就在于应用生命周期。 欢迎关注我的微信公众号:OpenFlutter,感谢。 作为一名 Flutter 开发者,掌握应用生命周期不仅仅是一个好主意——它是构建专业应用的必不可少的条件。它能让你防止应用崩溃、节省用户的电量,并保护他们宝贵的数据。 本指南将详细解析这些关键状态,并使用 AppLif


Oracle云基础设施强势崛起:AI驱动的新一代云计算竞争格局
qife1222025/10/6

Beyond Stargate: Oracle OCI提升云基础设施吸引力 Oracle与前沿AI模型制造商达成了震撼市场的交易,但专家表示,该公司也加强了对云计算三巨头在企业IaaS领域的挑战。 无论企业AI最终是福音还是泡沫,IT买家现在都需要考虑Oracle云基础设施这个新的主要参与者。Oracle本月频频登上头条,包括9月9日发布的强劲云收入预测,这主要得益于来自前沿模型公司的投资,例如OpenAI和软银的Stargate合资企业,该企业于6月与Oracle签署了4.5吉瓦数据中心协议。


数据仓库和商务智能考试考点及关系梳理
轩哥Up2025/10/5

一、核心考点分类及具体内容 (一)基础定义与核心区别(高频基础考点) 核心定义 概念 核心含义 关键目标 数据仓库(Data Warehouse, DW) 面向主题、集成、稳定、时变的结构化数据存储系统,通过整合多个数据源(OLTP系统、文件、API等)的历史数据,为企业决策提供统一的数据基础 1. 数据整合:消除数据孤岛,形成企业级统一数据视图; 2. 历史存储:保留长期历史数


首屏加载优化总结
excel2025/10/4

一、什么是首屏加载 首屏时间(First Contentful Paint,FCP) :浏览器从输入网址到 首屏内容渲染完成 的时间。 不需要整个网页都渲染完,但首屏区域必须显示内容。 重要性:是衡量用户体验最关键的性能指标之一。 计算方式 监听 DOMContentLoaded document.addEventListener('DOMContentLoaded', () => { console.log('first contentful painting'); });

首页编辑器站点地图

Copyright © 2025 聚合阅读

License: CC BY-SA 4.0