作者 | 羽生结弦

责编 | 胡雪蕊

出品 | CSDN(ID:CSDNnews)

Docker 是一个基于GO语言开发的开源应用容器,开发者可以打包应用和相关包,到一个轻量级 、可移植的容器中,并且可以发布到任何机器 ,实现虚拟化,完全使用沙箱机制,而且性能开销很低。

其中镜像是Docker三大核心概念中最重要的一个。镜像是一个特殊的文件系统,除了提供容器运行时所需的程序、库、资源、配置等文件外,还包含了一些为运行时准备的一些配置参数。镜像是容器在本地运行的基础,Dokcer运行容器前需要本地存在对应的镜像,如果不存在对应的镜像,Docker 会先从默认的镜像仓库下载(如果用户不希望Docker从默认的镜像仓库下载镜像的话,可以使用自定义镜像仓库)。这篇文章将讲解镜像的拉取、查看镜像信息、搜索镜像、删除镜像和镜像的导入导出。

拉取镜像

要想拉取镜像,就要用到 pull 命令,该命令的语法为:

注:pull 命令中参数 NAME 表示镜像仓库名称,TAG 表示镜像标签(一般表示为版本)

举个例子来看一下pull命令怎么使用。我们从默认的镜像仓库与拉取 Ubuntu 16.04,输入如下命令:

执行上面的命令,将会看到如下输出:

注1:如果不显示指定TAG,Docker默认使用latest标签,下载镜像仓库中最新的镜像

注2:latest标签会随着最新版本的变化而变化,例如昨天某镜像的版本是 1.0 ,今天上传了2.0版本的镜像,那么latest标签指的就是2.0这个版本

我们从前面的图中可以看到,在镜像下载过程中出现了4行,这四行代表着镜像文件有4个层,每层的唯一id就是每行开头的那串字符串(例如:35b42117c431)。当不同的镜像存在相同的层时,本地仅存出一份内容,这样就叫少了存储空间。

一般情况下,如果是从官方仓库注册服务器下载镜像文件时是不需要加上仓库注册服务器地址的,但是如果是从非官方仓库注册服务器下载的话,就需要加上注册服务器地址,例如我们要从阿里云下载ubuntu16.04的镜像,那么我们应该这样写命令:

常用的pull命令参数有如下两个:

查看镜像信息

查看镜像信息所用到的命令是 images 、 ls 和 inspect 命令。比如要查看当前电脑上存在的镜像,可以这么做:

或者

执行上面的命令,将会列出当前系统中存在的镜像,如下图

从上图中可以看出如下信息:

  • REPOSITORY:镜像来源

  • TAG:镜像标签,用于标记来自同一个仓库的不同镜像

  • IMAGE ID:镜像ID,镜像的唯一标识

  • CREATED:创建时间

  • SIZE:镜像大小

注1:镜像ID是很重要的信息,因为它是镜像的唯一标识,我们在操作镜像时需要用到它。一般情况下我们只会输入镜像ID的前N位就可以区分一个镜像了。

注2:镜像的大小只是代表了镜像的逻辑体积大小。由于相同镜像层在本地只会存储一份,因测镜像在物理上占用的空间小于各个镜像的逻辑体积之和。

images 和 ls 命令常用的参数选项如下:

我们有时候需要获取镜像详细的信息,这时我们可以使用 inspect 命令,语法格式为:

例如我们要查看刚才我们拉取的Ubuntu16.04镜像的详细信息,可以这么操作:

运行上面的命令后,我们会看到镜像的详细信息以json的形式打印出来,如图:

我们不仅可以查看镜像的详细信息,同样我们也可以查看层的详细信息,这时就需要用到history 命令,语法如下:

例如我们查看Ubuntu16.04镜像层的详细信息:

运行命令,将打印出层的详细信息。

搜索镜像

我们可以使用 search 命令搜索仓库中的镜像,语法为:

option 常用的参数如下:

我们举个例子来看一下,我们要搜索仓库中包含mysql的镜像,代码如下:

运行上面的命令,将会列出包含mysql关键字的镜像:

删除/清除镜像

1. 删除镜像

我们删除镜像的时候可以利用 镜像标签 、 镜像ID 来删除镜像。删除镜像的语法为:

例如我们利用镜像标签删除u16.04这个镜像:

运行上面的命令,u16.04这个镜像将会被删除。

注1:u16.04 这个镜像是我利用ubuntu:16.04 这个镜像通过添加镜像标签创建的

注2:当使用镜像ID删除镜像时,会先删除所有指向该镜像的标签,然后再删除该镜像文件本身

注3:如果存在通过该镜像创建的容器时,镜像文件无法删除。如果要强制删除镜像时,可以使用 -f 参数:docker rmi -f u16.04 ,但是不建议强制删除镜像。

2. 清理镜像

经过一段时间,系统中会存在临时/不再使用的镜像文件,那么我们可以通过 prune 命令清理镜像,语法如下:

option 常用的参数如下:

导入导出镜像

1. 导出

如果要将镜像导出可使用 save 命令,语法如下:

-o 表示将镜像导出到tar文件,例如我们将 ubuntu:16.04导出到 u1604.tar 文件中:

运行上面命令后,ubuntu:16.04就导入到了ub1604.tar文件中:

2. 导入

如果要将镜像导出可使用 load 命令,语法如下:

-i 表示将要导入到docker的镜像tar文件,例如我们将 ub1604.tar导入到docker中:

运行上面命令后,ub1604.tar将被导入到docker中

上传镜像

快速挑战Python全栈工程师:

https://edu.csdn.net/topic/python115?utm_source=csdn_bw

如果是上传到官方仓库,那么需要先注册,然后才可以利用 push 命令上传镜像,语法如下:

例如我们将ubuntu:16.04上传到官方服务器上:

直接拿来用!一文学会 Docker 镜像!相关推荐

  1. docker镜像如何下载到本地

    Docker save 命令 | 菜鸟教程 查看镜像 docker images 保存到本地 docker save 999c20aee5da > /home/artipub.tar 999c2 ...

  2. Docker 镜像多阶段构建实战总结

    文章目录 Docker 镜像多阶段构建实战总结 一 背景 二 实践步骤 2.1 只通过一个 Dockerfile 来构建[方案一] 2.2 多个 Dockerfile 实现多阶段构建[方案二] 2.3 ...

  3. Docker 快速入门(一文上手 Docker)

    通过本篇文章,就可以达到在 Window 或 Linux 上手 Docker(有点长,可以根据目录选择你需要的内容看) 文章图片没有带过来,涉及的图片较多,就不一一挪了,大家可以直接看我 GitCha ...

  4. docker pull下载很慢_一文了解Docker容器技术的操作

    一文了解Docker容器技术的操作 前言 相信点进这篇文章的Coder,不管是在各大技术论坛上.技术交流群,亦或招聘网上,应该都有见到过Doker容器技术的面孔,随着社会节奏的加快以及迫于生活的压力, ...

  5. 一文学会CentOS 文件常用命令

    系列文章目录 保姆级别 VMware Workstation 16 Pro 最新安装教程 VMware 安装CentOS 保姆级别教程 一文学会CentOS 文件常用命令 如果本文对你们的开发之路有所 ...

  6. 一文学会LaTeX基础

    一文学会LaTeX基础 零.入门 一.导言 文件类型 导入包 注明文章信息 二.正文框架 分文档 分章节 封面 目录 分页 分块 分行 三.正文格式 插入图片 引用与标注 引用文献 文内交叉引用 图注 ...

  7. 【一文学会MQTT协议和mosquitto】

    一文学会MQTT协议和mosquitto 一..MQTT的基本概念 二.mosquitto mosquitto基本概念 常用API 三.MQTT测试 EMQX 一..MQTT的基本概念 MQTT是一种 ...

  8. WEB前端有必要学会docker吗?0基础-45分钟带你学会(包含视频笔记案例源代码)

    文章目录 一.为什么要使用docker 二.Windows10/11系统安装Docker Desktop 三.如何判断电脑已经安装好docker 四.docker前端应用实战:将vue项目打包为doc ...

  9. 就几条命令,一键学会Docker部署SpringBoot项目

    今天,我们使用docker的安装方式,来安装一下我们的项目,实验环境是centos 7系统上,本实验适用部署大部分Springboot项目.文末有40分钟的视频教学哈! eblog项目地址: http ...

最新文章

  1. ASCII,Unicode和UTF-8终于找到一个能完全搞清楚的文章了
  2. 简单介绍ASP中Cache技术的应用
  3. 2.10 数据增强-深度学习第四课《卷积神经网络》-Stanford吴恩达教授
  4. python绘制混淆矩阵_如何实现python绘制混淆矩阵?
  5. web中的classpath 和 classpath*
  6. windows 远程连接debian_免受版权困扰的远程控制软件,优秀!
  7. 每日一句20191027
  8. php网站留言,php实现网站留言板功能
  9. linux svn安装教程
  10. 案例1-合并2个不同文件夹中的csv文件到另外一个目录,相同的文件名进行数据合并,不同的文件名直接移到新文件夹...
  11. 常用的公共数据集(一)
  12. 2017-2018 中国人工智能产业路线图
  13. 基于 TMS320F2812 的直流无刷电机(BLDCM)的开环控制系统
  14. PDF文件找回打开密码
  15. 登陆后台时,弹出Cann't connect to DB!
  16. Codeforces Round #514 (Div. 2)-D. Nature Reserve
  17. 金弘同创:拼多多怎么退保证金
  18. cd linux安装到u盘,手把手安装CDLinuxU盘启动
  19. 安装Python报错Setupfailed(Windows 7 Service Pack 1 and all applicable updates...)解决办法
  20. 怎么看服务器内存型号频率,怎么查看服务器内存频率

热门文章

  1. 《TensorFlow 2.0深度学习算法实战教材》学习笔记(九、卷积神经网络)
  2. [CMake] message 打印变量值
  3. 爱可生 mysql监控_MySQL 数据传输DTLE 最新版来啦-爱可生
  4. 大学计算机基础上机实践报告,大学计算机基础上机实践报告书册.doc
  5. 地图分析--广度搜索
  6. 【机器学习】Andrew Ng——前言
  7. 2019级C语言大作业 - 冷冻双侠
  8. 《Python游戏趣味编程》第12章 坚持一百秒
  9. SQL Server 访问发送Http请求
  10. php mysql_fetch_array($result)_PHP mysqli_free_result()与mysqli_fetch_array()函数