第二篇:Docker 镜像到底是什么?

举报
yd_220371319 发表于 2026/09/10 18:56:44 2026/09/10
【摘要】 上一篇我们提到了 Image。这一次把它单独拿出来讲。镜像是什么?可以简单把 Docker Image 理解成:一个用来创建容器的模板。例如:docker pull nginx拉下来的就是一个 Nginx 镜像。查看本地镜像:docker images或者:docker image ls可能看到:REPOSITORY TAG IMAGE ID SIZEnginx ...


上一篇我们提到了 Image。

这一次把它单独拿出来讲。

镜像是什么?

可以简单把 Docker Image 理解成:

一个用来创建容器的模板。

例如:


docker pull nginx

拉下来的就是一个 Nginx 镜像。

查看本地镜像:


docker images

或者:


docker image ls

可能看到:


REPOSITORY   TAG       IMAGE ID       SIZE
nginx        latest    xxxxxxxx       188MB

这里:


nginx

是镜像名称。


latest

是 Tag。

为什么有 Tag?

同一个软件可能存在多个版本。

例如:


nginx:1.26
nginx:1.27
nginx:latest

所以生产环境最好不要什么都写 latest。

例如:


docker pull nginx:1.27

这样版本更加明确。

镜像是怎么来的?

镜像一般有两种来源。

第一种:

直接使用别人已经构建好的镜像。


docker pull nginx

第二种:

自己通过 Dockerfile 构建。

例如:


docker build -t my-app:1.0 .

后面我们会专门讲 Dockerfile。

镜像为什么是一层一层的?

Docker 镜像并不是一个简单的压缩包。

它采用了分层结构。

例如:


基础镜像
   ↓
安装依赖
   ↓
复制代码
   ↓
设置启动命令

每一层都可以被缓存和复用。

这也是 Docker 构建速度能够很快的重要原因之一。

删除镜像


docker rmi nginx

如果这个镜像正在被容器使用,Docker 通常不会让你直接删除。

这其实也是一种保护机制。

镜像离线搬家

有时候服务器没有网络,怎么办?

可以先把镜像保存成文件:


docker save nginx:latest -o nginx.tar

然后把 nginx.tar 传到另一台服务器。

再执行:


docker load -i nginx.tar

镜像就回来了。

这在离线服务器、内网环境中非常实用。

Image 和 Container 到底有什么关系?

可以把它想象成:


镜像 = 安装包/模板

容器 = 根据模板创建出来的实例

一个镜像可以创建多个容器:


        nginx Image
        /    |    \
       ↓     ↓     ↓
    web01  web02  web03

所以:

删除容器,不等于删除镜像。

下一篇开始研究容器本身。

【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0)

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。