前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【Docker入门】镜像管理

【Docker入门】镜像管理

原创
作者头像
参谋带个长
发布2024-01-02 19:07:38
4500
发布2024-01-02 19:07:38
举报

镜像是 docker 的重要概念,它是轻量级的、可执行的独立软件包,包含了运行某个软件所需的所有内容。

本文主要介绍 docker 镜像的获取、查询、删除等管理操作。

获取镜像命令 docker pull

在 docker 容器运行前需要在本地存在对应的镜像,如果不存在,则会尝试从镜像仓库中下载,默认的仓库为 Docker Hub,用户也可以通过配置使用第三方镜像库。

docker pull 命令用于从 Docker 镜像仓库中拉取(下载)镜像。

命令格式:

代码语言:bash
复制
docker pull <image_name>[:<tag>]

参数

功能

image_name

镜像的名称

tag

可选标签,如不指定标签默认为 latest,Docker将默认拉取最新版本的镜像

镜像 latest 标签表示拉取最新版本,可在生产环境中指定标签信息,以下载稳定版本的镜像

命令示例:

代码语言:bash
复制
# 拉取最新版本的Ubuntu镜像
docker pull ubuntu

# 拉取Ubuntu 22.04版本的镜像
docker pull ubuntu:22.04

在这个例子中,docker pull ubuntu 命令用于从Docker Hub上拉取官方最新版本的Ubuntu镜像。

查看镜像命令 docker images

docker images 命令用于列出本地系统中已经下载的所有 Docker 镜像,同时显示镜像的仓库地址、标签、镜像ID、创建时间以及镜像的大小等信息。

代码语言:bash
复制
# 查看镜像
docker images

# 可能返回以下内容
REPOSITORY   TAG       IMAGE ID       CREATED        SIZE
ubuntu       latest    174c8c134b2a   2 weeks ago    77.9MB
nginx        latest    d453dd892d93   2 months ago   187MB

参数

说明

REPOSITORY

镜像的仓库名称

TAG

镜像的标签,用于标识镜像版本的字符串。在示例中两个镜像使用了latest标签,表示是这些镜像的最新版本。

IMAGE ID

镜像的唯一标识符,称为镜像ID,每个镜像都有一个唯一的ID,用于区分不同的镜像版本。

CREATED

镜像的创建时间,表示该镜像在本地系统中被下载或创建的时间。

SIZE

镜像的大小,表示该镜像在本地系统中占用的空间大小。

示例运行 docker images 命令显示了本地系统中已经下载的镜像。在这个列表中,有两个Docker镜像:ubuntu和nginx,这两个镜像都使用了最新版本(latest标签)。

查看镜像详情命令 docker inspect

docker inspect 命令用于查看Docker对象的详情信息,可以返回Docker镜像、容器、网络、卷等内容。

命令格式:

代码语言:bash
复制
docker inspect <image_name>[:<tag>]

参数

功能

image_name

镜像的名称

tag

可选标签,如不指定标签默认为 latest,将返回最新版本的镜像的详细信息

命令示例:

代码语言:bash
复制
# 返回镜像的详细信息,包括制作者、适应的架构、各层的数字摘要等。
docker inspect ubuntu:latest

查看镜像历史命令 docker history

docker history 命令用于查看指定镜像的创建历史。它显示了镜像的各个提交记录,包括镜像的创建时间和提交信息。

命令格式:

代码语言:bash
复制
docker history <image_name>[:<tag>]

参数

功能

image_name

镜像的名称

tag

可选标签,如不指定标签默认为 latest,将返回最新版本的镜像的历史记录

命令示例:

代码语言:bash
复制
# 查看官方的Ubuntu镜像的历史记录
docker history ubuntu:latest

# 可能返回以下内容
IMAGE          CREATED       CREATED BY                                      SIZE      COMMENT
174c8c134b2a   2 weeks ago   /bin/sh -c #(nop)  CMD ["/bin/bash"]            0B        
<missing>      2 weeks ago   /bin/sh -c #(nop) ADD file:2b3b5254f38a790d4…   77.9MB    
<missing>      2 weeks ago   /bin/sh -c #(nop)  LABEL org.opencontainers.…   0B        
<missing>      2 weeks ago   /bin/sh -c #(nop)  LABEL org.opencontainers.…   0B        
<missing>      2 weeks ago   /bin/sh -c #(nop)  ARG LAUNCHPAD_BUILD_ARCH     0B        
<missing>      2 weeks ago   /bin/sh -c #(nop)  ARG RELEASE                  0B

Docker镜像是由多个层组成的,每一层都是一个只读的镜像,并且每一层都叠加在上一层之上。每一层都有自己的ID、创建时间、创建者、大小和注释等信息。

参数

功能

IMAGE

层的ID,每一层的ID都是唯一的,用于标识该层

CREATED

层的创建时间,"2 weeks ago",表示该层是在两周前创建的

CREATED BY

创建该层的命令,命令是在Dockerfile中定义的,用于构建镜像的每一层

SIZE

层的大小,单位是字节(B)

COMMENT

层的注释,通常用于记录该层的用途或相关信息

镜像查询命令 docker search

docker search 命令用于在Docker Hub上查找镜像。

命令格式:

代码语言:bash
复制
docker search [OPTIONS] 镜像名称或关键字

参数

功能

--automated

只列出自动化构建类型的镜像。

--no-trunc

显示完整的镜像描述,不省略任何内容。

-f <过滤条件>

列出收藏数不小于指定值的镜像。

命令示例:

代码语言:bash
复制
# 返回与"nginx"相关的镜像信息
docker search nginx

# 输入关键字“ngi”返回相关内容
docker search ng

# 可能返回以下内容
NAME                                              DESCRIPTION                                     STARS     OFFICIAL   AUTOMATED
nginx                                             Official build of Nginx.                        19424     [OK]       
unit                                              Official build of NGINX Unit: Universal Web …   20        [OK]       
nginxinc/nginx-unprivileged                       Unprivileged NGINX Dockerfiles                  140                  
nginx/nginx-ingress                               NGINX and  NGINX Plus Ingress Controllers fo…   87                   
nginx/nginx-prometheus-exporter                   NGINX Prometheus Exporter for NGINX and NGIN…   33                   
nginxinc/nginx-s3-gateway                         Authenticating and caching gateway based on …   3                    
ngrok/ngrok                                       docker image for ngrok agent                    40                   
nginx/nginx-ingress-operator                      NGINX Ingress Operator for NGINX and NGINX P…   2                    
nginx/unit                                        This repository is retired, use the Docker o…   64                   

删除镜像命令 docker rmi

docker rmi 命令用于删除一个或多个 Docker 镜像,

命令格式及示例:

代码语言:bash
复制
# 删除单个镜像
docker rmi <IMAGE_ID或REPOSITORY:TAG>

# 通过名称删除镜像
docker rmi nginx:latest

# 通过ID删除镜像
docker rmi ee7cbd482336

# 删除多个镜像
docker rmi <IMAGE1> <IMAGE2> ...

可以一次删除多个镜像,只需在命令中列出ID或名称。

docker rmi 命令还支持一些可选参数

参数

功能

-f或--force

强制删除镜像,即使有容器引用该镜像。

-no-prune

不要删除未带标签的父镜像。

删除镜像是不可逆的操作,请谨慎处理并做好必要的备份。

清理镜像命令 docker image prune

docker image prune 命令用于清理系统中临时或无用的镜像文件。默认情况下只会清理未被标记且未被其他任何镜像引用的镜像。

参数

功能

-a

删除所有无用镜像,不仅是临时镜像

-f

强制删除镜像,而不进行提示确认

清理镜像是不可逆的操作,请谨慎处理并做好必要的备份。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 获取镜像命令 docker pull
  • 查看镜像命令 docker images
  • 查看镜像详情命令 docker inspect
  • 查看镜像历史命令 docker history
  • 镜像查询命令 docker search
  • 删除镜像命令 docker rmi
  • 清理镜像命令 docker image prune
相关产品与服务
容器镜像服务
容器镜像服务(Tencent Container Registry,TCR)为您提供安全独享、高性能的容器镜像托管分发服务。您可同时在全球多个地域创建独享实例,以实现容器镜像的就近拉取,降低拉取时间,节约带宽成本。TCR 提供细颗粒度的权限管理及访问控制,保障您的数据安全。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档