六.Docker镜像

镜像是Docker的三大组件之一
Docker运行容器前需要本地存在对应的镜像,如果本地不存,Docker会从镜像仓库下载

6.1Docker获取镜像

6.1.1查找镜像

我们可以从Docker Hub网站来搜索镜像,Docker Hub网址为:
https://hub.docker.com/
我们也可以使用docker search命令来搜索镜像,比如我们需要一个tomcat的镜像来作为我们的web服务,我们可以通过docker search命令搜索tomcat来寻找适合我们的镜像

docker search --help
docker search tomcat

可以加以下参数

-f ,根据提供的条件过滤器输出
--format 用G模板打印出漂亮的搜索结果
--limit 搜索结果的最大数量(默认值为25)
--no-trunc 不要截断输出

6.1.2 获取镜像

从Docker镜像仓库获取镜像的命令是docker pull其命令格式为:

docker pull [选项] [Docker Registey 地址[:端口号]/] 仓库名[:标签]
具体的选项可以用过docker pull --help命令看到,这里我们说一下镜像名称的格式
- Docker 镜像仓库地址:地址的格式一般是 <域名/IP>[:端口号],默认地址是Docker Hub
- 仓库名:这里的仓库名是两段式名称,即<用户名>/<软件名>.对于Docker Hub,如果不给出用户名,则默认位library,也就是官方镜像

我们需要一个tomcat的镜像来作为我们的web服务,通过docker pull获取镜像

docker pull tomcat:版本号 //不写:版本号 代表laster版本

6.2Docker列出镜像

要想列出已经下载的镜像,可以使用docker image-ls命令

docker images //docker image ls


列表包含了仓库名,标签,镜像ID,创建时间以及所占用的空间
其中仓库名,标签在之前的基础概念已经介绍过了,镜像ID则是镜像的唯一标识,一个镜像可以对应多个标签,因此,如果拥有相同的ID,因为它们对应的是同一个镜像

如果仔细观察,会注意到,这里标识的所占空间和在Docker Hub上看到的镜像大小不同,这是因为Docker Hub中显示的体积是压缩后的体积。在镜像下载和上传过程中镜像是保持着压缩状态的,因此Docker Hub所显示的大小是网络传输中更关心的流量大小。而docker image ls显示的是镜像下载到本地后,展开的大小,准确说,是展开后的各层所占空间的总和,因为镜像到本地后,查看空间的时候,更关心的是本地磁盘空间占用的大小。

另外一个需要注意的问题是,docker image ls列表中的镜像体积总和并非是所有镜像实际硬盘消耗。由于Docker镜像是多层存储结构,并且可以继承,复用,因此不同镜像可能会因为使用相同的基础镜像,从而拥有共同的层,由于Docker使用Union FS,相同的层只需要保存一份即可,因此实际镜像硬盘占用空间很可能要比这个列表镜像大小的总和要小的多

虚悬镜像
镜像列表中,还可以看到一特殊的镜像,这个镜像既没有仓库名,也没有标签,均为<none>

docker image prune

6.3举例说明

6.3.1安装tomcat

docker pull tomcat

6.3.2安装nginx

docker pull nginx:laster

6.3.3列出docker镜像

tomcatnginx就已经在里面了

docker images

6.3.4安装指定的tomcat版本

docker pull tomcat:8


这里下载的8版本有部分是和新版一样的内容,所以应该就是不直接下载了,直接从那个仓库里复用了,个人分析

6.3.5再次列出docker镜像

docker images


注:这里说一下tomcat8和tomcat的latest版本所占空间大小是小于672MB+680MB的,因为他俩中的代码是有共用的。真实所占空间可能就tomcat8(400MB)+680MB,不懂的话请忽略跳过

6.4Docker删除本地镜像

docker image rm [选项] <镜像1> [<镜像2>...]

注:用ID,镜像名,摘要删除镜像
其中,<镜像>可以是镜像短ID,镜像长ID,镜像名或者镜像摘要。

如果要删除本地的镜像,可以使用docker image rmi/rm命令

docker image rmi 镜像ID  //常用

注:要删除镜像必须确此镜像目前没有被任何容器使用

6.4.1举例说明

安装nginx 1.20版本

docker pull nginx:1.20

通过短ID来删除nginx 1.20版本

短ID

docker rmi c90c   //你这里不要照抄啊,先查看你的nginx的ID是多少,短ID能和其他版本的区分就行

6.5Docker其他辅助命令

6.5.1查看本地镜像的IMAGE ID

docker images -q

6.5.2查看一个镜像的制作历程

docker history 镜像名称

6.6Docker保存镜像

备份本地仓库的镜像

6.6.1用save子命令将本地仓库的镜像保存当前目录下

docker save -o tomcat.li.tar 镜像名称

6.6.2将本地目录下的镜像备份文件导入本地Docker仓库

#  方式一(不输出详细信息)
docker load -i tomcat.li.tar
#  方式二(输出详细信息)
docker load < tomcat.li.tar

Docker学习(三)-----Docker镜像常用命令相关推荐

  1. Docker学习(三)-----Docker镜像和仓库了解以及加速

    镜像(Image)是构建容器的基础,镜像是一种分层结构的文件系统.我们可以从仓库(Repository)中下载镜像,而仓库又保存在Registry中,Docker Hub是Docker官方提供的Reg ...

  2. Docker学习三 Docker安装Mysql

    Docker安装Mysql 文章目录 Docker安装Mysql 前言 查看docker镜像 查看mysql镜像版本 下载镜像 运行mysql 前言 mysql数据库是后端开发经常用到的,而且有时候还 ...

  3. Docker学习之路 用commit命令创建镜像

    Docker学习之路 用commit命令创建镜像 docker 74k 次阅读 · 读完需要 7 分钟 假期快要结束了,干点正事,接着Docker的学习. 构建镜像 构建镜像的两种方法: 使用dock ...

  4. Docker镜像常用命令

    Docker镜像常用命令 查看镜像列表 docker images $ docker images >>> REPOSITORY TAG IMAGE ID CREATED SIZE ...

  5. Docker小白到实战之常用命令演示,通俗易懂

    前言 上一篇大概认识了Docker,主要是从概念.架构.优点及流程方面进行阐述,并进行安装和体验:接下来就开始进行实操学习,在演示过程中会针对关键的知识点进行归纳和总结,这里先从常用命令说起,来吧,小 ...

  6. Docker学习三:Docker 数据管理

    前言 本次学习来自于datawhale组队学习: 教程地址为: https://github.com/datawhalechina/team-learning-program/tree/master/ ...

  7. Docker学习(3)-Docker镜像构建和使用

    Docker学习(1)-Docker简介 Docker学习(2)-Docker基础1 Docker 镜像与制作 Docker 镜像内是否包含内核(bootfs)? 首先,从镜像的体积大小来说,一个比较 ...

  8. Docker笔记三 Docker镜像制作

    Docker笔记三 Docker镜像制作 1.Docker镜像制作方法: docker commit 保存当前container的状态到镜像,生成p_w_picpath. docker build 利 ...

  9. Docker学习2——Docker高级

    Docker学习2--Docker高级 2.1 Dockerfile解析 2.1.1 Dockfile是什么 Dockerfile是用来构建Docker镜像的文本文件,是由一条条构建镜像所需的指令和参 ...

最新文章

  1. python随机数程序源码_Python 实现随机数详解及实例代码
  2. BUAA_OO第三单元作业总结——JML
  3. Java求解自由落体相关问题
  4. nodejs - 服务端管理 - PM2
  5. 《线性代数及其应用》笔记-第三章
  6. Python遍历文件夹下所有文件及目录
  7. 保研之路——复旦计算机学院预推免
  8. 第八届“图灵杯”NEUQ-ACM程序设计竞赛个人赛非官方题解
  9. bzoj2565(manacher)
  10. Matlab - 产生高斯噪声
  11. Dell电脑 U盘启动盘 安装ubuntu
  12. MIPCMS如何用火车头采集自定义字段?
  13. Copley驱动maxon错误集锦
  14. [Windows系统]“ppt无法打开演示文稿,防病毒程序可能阻止您打开此演示文稿?”这种情况不要慌
  15. STM32学习笔记2:配置TCRT5000模块(红外传感模块)调用
  16. 项目管理-今天学Wiki
  17. 【多式联运】基于帝国企鹅算法、遗传算法、粒子群算法求解多式联运路径优化问题附matlab代码
  18. webpack打包优化
  19. 面经——2019求职修行记
  20. Spring Boot映射静态资源

热门文章

  1. 2022-2028年中国装备制造产业深度分析及发展规划咨询建议报告(全卷)
  2. docker打包镜像出现python安装包超时的现象
  3. vscode 高效使用指南
  4. jdk12‘javac‘ 不是内部或外部命令,也不是可运行的程序 或批处理文件。
  5. 同步与异步,阻塞与非阻塞的区别
  6. LeetCode简单题之移动零
  7. 2021年大数据Spark(四):三种常见的运行模式
  8. Dockerfile的详解
  9. NameError: name xx is not defined
  10. System.err: java.lang.UnsatisfiedLinkError: dlopen failed: library “libc++_shared.so“ not found