前面已经介绍镜像的好处, 这里就不多解释, 直入主题, 上例子

上一篇已经介绍拉取第一个项目 hello-world,并运行, 也实践了, 这里继续学习镜像拉取,

拉取第一个服务nginx, 拉取并运行如下操作

第一个 Docker 实例

当前只是演示拉取服务并跑起来, 参数稍后会一一详解

[root@chensir ~] # docker run -d --rm --name nginx -p 80:80 nginx
Unable to find image 'nginx:latest' locally
latest: Pulling from library/nginx
bb79b6b2107f: Pull complete
5a9f1c0027a7: Downloading [==============> ] 7.457MB/26.49MB
5a9f1c0027a7: Downloading [======================> ] 12.17MB/26.49MB
166a2418f7e8: Download complete
1966ea362d23: Download complete

使用 Docker 镜像

docker 镜像是 docker 中三大概念之一,其主要作用是作为启动容器的模板。

[root@chensir ~] # docker run 镜像|镜像ID

获取镜像

镜像是运行容器的模板,官方 Docker Hub 仓库已经提供了许多镜像共开发者使用。如果我们需要获取某 个镜像则可以去 docker 仓库下载所需的镜像。

下载镜像的格式:docker pull [image_name][:image_version]

下载镜像实例:

[root@chensir ~]# docker pull nginx:1.17

下载的时候,我们可以看到有若干层组成,像 afb6ec6fdc1c 这样的字符串是层的唯一 ID(实际上,完整的 ID 包括 256 比特, 64 个十六进制字符组成)。使用 docker pull 命令下载中会获取并输出镜像的各层信息。当不 同的镜像包括相同的层的时候,本地仅存一份内容,减小存储空间.

查看镜像信息

镜像主要包括镜像文件、镜像 tag 以及镜像详细信息等等。

[root@chensir ~]# docker images

镜像列表

使用 docker images 或 docker images ls 命令可以列举本地主机上已有镜像的基本信息。使用同样的命令

[root@chensir ~]# docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
nginx               1.17                9beeba249f3e        6 months ago        127MB
hello-world         latest              bf756fb1ae65        11 months ago       13.3kB

列举信息中,可以看到几个字段信息:

  • 镜像来源:来自哪个仓库,默认来自:hub.docker.com
  • 镜像标签:比喻 1.17, latest(最新版)
  • 镜像 ID:例如 9beeba249f3e
  • 镜像创建时间:例如:6 months ago
  • 镜像大小:127MB

其中镜像的 ID 信息十分重要,它唯一标识了镜像。在使用镜像 ID 的时候,一般可以使用该 ID 的前若干个 字符组成的可区分串来替代完整的 ID。

TAG 信息用于标记来自同一个仓库的不同镜像。TAG 在同一个仓库中是唯一的。

镜像大小信息只是表示了该镜像的逻辑体积大小,实际上由于相同的镜像层本地只会存储一份,物理上占用 的存储空间会小于各镜像逻辑体积之和。

image 子命令主要支持如下选项:

-a : 列出所有(包括临时文件)镜像文件

–digests=true|false:列出镜像的数字摘要值

-q : 仅显示 ID 信息

自行测试
[root@chensir ~]# docker images -q
9beeba249f3e
bf756fb1ae65

为镜像添加 tag

为了方便后续工作中使用特定的镜像,还可以使用 docker tag 命令来为本地的镜像添加标签

现有镜像docker tag [镜像名称]:[镜像版本] [镜像新名称]:[版本], 还有参数, 自行研究, 后续会介绍一点

[root@chensir ~]# docker images -a
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
nginx               1.17                9beeba249f3e        6 months ago        127MB
hello-world         latest              bf756fb1ae65        11 months ago       13.3kB[root@chensir ~]# docker tag nginx:1.17 mynginx:v1
[root@chensir ~]# docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
mynginx             v1                  9beeba249f3e        6 months ago        127MB
nginx               1.17                9beeba249f3e        6 months ago        127MB
hello-world         latest              bf756fb1ae65        11 months ago       13.3kB

使用 inspect 命令查看详细信息

详解 docker inspect [镜像名|镜像ID], 可以是镜像名, 也可以是镜像ID

[root@chensir ~]# docker inspect 9beeba249f3e   我这里用镜像id
[{"Id": "sha256:9beeba249f3ee158d3e495a6ac25c5667ae2de8a43ac2a8bfd2bf687a58c06c9","RepoTags": ["mynginx:v1","nginx:1.17"],"RepoDigests": ["nginx@sha256:6fff55753e3b34e36e24e37039ee9eae1fe38a6420d8ae16ef37c92d1eb26699"],
.....

使用 history 命令查看镜像历史

[root@chensir ~]# docker history 9beeba249f3e
IMAGE               CREATED             CREATED BY                                      SIZE  COMMENT
9beeba249f3e        6 months ago        /bin/sh -c #(nop)  CMD ["nginx" "-g" "daemon…   0B
<missing>           6 months ago        /bin/sh -c #(nop)  STOPSIGNAL SIGTERM           0B
<missing>           6 months ago        /bin/sh -c #(nop)  EXPOSE 80                    0B
<missing>           6 months ago        /bin/sh -c ln -sf /dev/stdout /var/log/nginx…   22B
<missing>           6 months ago        /bin/sh -c set -x     && addgroup --system -…   57.6MB
<missing>           6 months ago        /bin/sh -c #(nop)  ENV PKG_RELEASE=1~buster     0B
<missing>           6 months ago        /bin/sh -c #(nop)  ENV NJS_VERSION=0.3.9        0B
<missing>           6 months ago        /bin/sh -c #(nop)  ENV NGINX_VERSION=1.17.10    0B
<missing>           6 months ago        /bin/sh -c #(nop)  LABEL maintainer=NGINX Do…   0B
<missing>           6 months ago        /bin/sh -c #(nop)  CMD ["bash"]                 0B
<missing>           6 months ago        /bin/sh -c #(nop) ADD file:7780c81c33e6cc5b6…   69.2MB

注意:有些构建信息过长,可以使用–no-trunc 选项来输出完整信息

搜索镜像

在docker中搜索镜像主要使用Search子命令,默认只搜索Docker Hub官方镜像仓库中的镜像。其语法为

docker search [option] keyword。支持的命令选项主要包括:

-f : 过滤输出内容

搜索官方提供的带有 Redis 关键字的镜像

[root@chensir ~]# docker search -f is-official=true redis
NAME                DESCRIPTION                                     STARS               OFFICIAL            AUTOMATED
redis               Redis is an open source key-value store that…   8792                [OK]

搜索被收藏超过 8000 个的并且关键词包括 mysql 的镜像

[root@chensir ~]# docker search -f stars=8000 mysql
NAME                DESCRIPTION                                     STARS               OFFICIAL            AUTOMATED
mysql               MySQL is a widely used, open-source relation…   10202               [OK]

–limit: 限制输出结果

[root@chensir ~]# docker search --limit=2 mysql
NAME                              DESCRIPTION                                     STARS               OFFICIAL            AUTOMATED
mysql                             MySQL is a widely used, open-source relation…   10202               [OK]
mariadb                           MariaDB is a community-developed fork of MyS…   3753                [OK]
mysql/mysql-server                Optimized MySQL Server Docker images. Create…   746

–no-trunc: 不截断输出结果, 结果会非常长,

[root@chensir ~]# docker search -f stars=8 --limit 3 --no-trunc mysql
NAME                 DESCRIPTION                                                                                           STARS               OFFICIAL            AUTOMATED
mysql                MySQL is a widely used, open-source relational database management system (RDBMS).                    10202               [OK]
mysql/mysql-server   Optimized MySQL Server Docker images. Created, maintained and supported by the MySQL team at Oracle   746                                     [OK]
bitnami/mysql        Bitnami MySQL Docker Image                                                                            47                                      [OK]

输出参数释义

NAME     DESCRIPTION      STARS      OFFICIAL     AUTOMATED
  • NAME: 镜像仓库源的名称
  • DESCRIPTION: 镜像的描述
  • OFFICIAL: 是否 docker 官方发布
  • stars: 类似 Github 里面的 star,标星,表示点赞
  • AUTOMATED: 自动构建。

删除和清理镜像

在 docker 中,删除镜像主要使用 rmi 子命令,清理镜像主要使用 prune 子命令。

使用标签删除镜像

使用 docker rmidocker image rm 命令可以删除镜像,命令格式为 docker rmi image

[root@chensir ~]# docker rmi hello-world:latest

使用参数 -f : 强制删除镜像。

[root@chensir ~]# docker rmi -f bf756fb1ae65
Untagged: hello-world:latest
Untagged: hello-world@sha256:e7c70bb24b462baa86c102610182e3efcb12a04854e8c582838d92970a09f323
Deleted: sha256:bf756fb1ae65adf866bd8c456593cd24beb6a0a061dedf42b26a993176745f6b

清理镜像

使用一段时间之后,docker 会产生很多临时文件,以及一些没有被使用的镜像,我们可以通过 docker image prune 命令来进行清理。删除没有被使用的镜像, 使用的不会删除

参数:

-a :删除所有无用的镜像,不光是临时镜像。

先查看所有镜像
[root@chensir ~]# docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
mysql               5.7                 ae0658fdbad5        10 days ago         449MB
redis               latest              74d107221092        13 days ago         104MB
centos              latest              0d120b6ccaa8        3 months ago        215MB
mynginx             v1                  9beeba249f3e        6 months ago        127MB
nginx               1.17                9beeba249f3e        6 months ago        127MB查看运行的容器
[root@chensir ~]# docker ps
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS               NAMES
2bf02516069b        redis               "docker-entrypoint.s…"   5 seconds ago       Up 3 seconds        6379/tcp            stupefied_bouman
43b257df88ee        centos              "bash"                   32 seconds ago      Up 31 seconds                           naughty_einstein只有两个被使用到, 其他的是多余的, 需要使用prune删除掉
[root@chensir ~]# docker image prune -a
[root@chensir ~]# docker image prune -a
WARNING! This will remove all images without at least one container associated to them.
Are you sure you want to continue? [y/N] y  输入y确认删除
Deleted Images:
untagged: mynginx:v1
untagged: nginx:1.17
untagged: nginx@sha256:6fff55753e3b34e36e24e37039ee9eae1fe38a6420d8ae16ef37c92d1eb26699
deleted: sha256:9beeba249f3ee158d3e495a6ac25c5667ae2de8a43ac2a8bfd2bf687a58c06c9
...
untagged: mysql:5.7
untagged: mysql@sha256:8e2004f9fe43df06c3030090f593021a5f283d028b5ed5765cc24236c2c4d88e
deleted: sha256:ae0658fdbad5fb1c9413c998d8a573eeb5d16713463992005029c591e6400d02
...Total reclaimed space: 506MB

再查看只有运行的镜像保留下来

-f :强制删除镜像,而不进行提示。也就是没有 y确认项, 自行测试

下一篇讲构建镜像和保存, 期待哦!

docker镜像的获取删除和查看镜像信息历史记录清理残余镜像相关推荐

  1. Docker 入门系列(2)- Docker 镜像, 免 sudo 使用 docker 命令、获取查看、修改镜像标签、查找删除创建镜像、导入导出镜像

    1. 免 sudo 使用 docker 命令 如果还没有 docker group 就添加一个 sudo groupadd docker 将用户加入该 group 内 sudo gpasswd -a ...

  2. 【docker一】docker是什么、为什么使用Docker、docker镜像搜索、获取、删除、查看、导出导入、查看历史详细信息

    Docker基础 1. docker是什么 docker的中文解释是码头工人. 官方解释: Docker是一个开源的容器引擎,它基于LCX容器技术,使用Go语言开发. 源代码托管在Github上,并遵 ...

  3. Docker私有仓库管理,删除本地仓库中的镜像

    一:Docker私有仓库安装 1. 下载镜像是有镜像仓库: [root@localhost ~]# systemctl start docker#如果已经有镜像了,强制删除原来的镜像的方式如下: [r ...

  4. Docker怎么样拉取镜像?怎样删除镜像?

    今天的Java培训,我们讲解一下Docker拉取镜像的方式.我们拉取镜像默认是从 Docker Hub 镜像仓库上进行获取的,在 Docker Hub 的官网 Docker Hub   上我们可以查看 ...

  5. docker之操作管理应用模板、镜像、容器、构建基础镜像、状态删除

    五.Docker操作管理 1.应用模板 (1)Concrete5 通过"应用商店"部署Concrete5,修改网页访问端口为9091,通过curl命令访问首页,提交执行结果文本到命 ...

  6. 【Docker】docker镜像的获取、制作方法、Dockerfile

    目录 docker镜像 docker镜像的获取: docker镜像的制作方法: 基于容器制作镜像: 基于docker file制作: dockerfile instructions: FROM: MA ...

  7. docker 镜像容器导入导出、查看日志、拷贝文件命令

    1. 本地文件拷贝到docker 容器中,参考 docker cp /root/pcl-pcl-1.8.1.tar.gz 7ff95b333e12:/docker cp /root/lib64_a 7 ...

  8. Docker学习笔记_删除某个镜像

    实验:删除某个镜像 sudo docker rmi [Image ID] 1.查看镜像的ID                  sudo docker images 2.删除镜像            ...

  9. Docker “pull“命令获取镜像,讲道理你真的会吗?

    文章目录 docker pull 命令介绍 从Docker Hub拉取一个镜像 指定镜像tag标签拉取 查看已下载镜像列表 通过摘要拉取镜像 从其它注册中心拉取 docker pull 命令介绍 do ...

  10. Docker镜像导出、删除、导入以及问题解决

    需求:将windows中的docker镜像共享到Linux虚拟机中.先将Windows系统中的镜像导出,再通过共享文件的方式在Linux系统中导入镜像. 为了今后查询方便,在此记录过程. 1.镜像导出 ...

最新文章

  1. 百度编辑器(1.4.3—net版)上传图片路径及其他配置
  2. pip 指定 安装源
  3. Oracle 中文分词CHINESE_VGRAM_LEXER与CHINESE_LEXER比较
  4. Keras笔记(一)关于Keras模型
  5. 光模块的正确安装方法和使用须知
  6. win7备份工具_win7系统小白一键系统详细教程
  7. linux下tmp目录属性,Linux:文件夹属性及umask
  8. centos命令行安装mysql_Centos下安装mysql 总结
  9. [转载] python提取list中特定的元素_Python中list列表的基本操作
  10. js数组(列表)的基本操作
  11. 万卷书 - 如何在股市中赚钱 How to Make Money in Stocks
  12. 【AP_EJOR】Robust solutions to multi-objective linear programs with uncertain data(2)
  13. 五步轻松搞定QGIS三维地形浏览
  14. 台式电脑怎么调出计算机,台式电脑连接笔记本显示器的方法步骤
  15. 用 Python 实现黑客帝国中的数字雨落既视感
  16. 一文说透企业风险管理的三大要素分别是什么
  17. 一个开源vue网站博客,nuxt开源网站,前后端分离项目 1
  18. FreeRTOS临界段的保护
  19. 智源社区AI周刊No.105:谷歌FLAN-T5 30亿参数即超越GPT-3性能;Copilot推出语音编程新功能,但面临诉讼...
  20. 清除“全能车”这颗“毒瘤”,共享单车再出发

热门文章

  1. 为什么我会感到迷茫? 文/江湖一剑客
  2. 12306模拟登陆-超级鹰
  3. python模拟12306购票_实现12306模拟登录--Python
  4. ultravnc使用,ultravnc如何进行使用
  5. 数学笔记10——拉格朗日中值定理
  6. Python爬虫使用lxml模块爬取豆瓣读书排行榜并分析
  7. 联想E430使用移动硬盘做系统启动
  8. c语言maxval函数,fortran语言常用函数
  9. dependency
  10. 高可用和热备份是什么意思?