您当前的位置:首页 > 电脑百科 > 程序开发 > 容器

直接拿来用!一文学会 Docker 镜像

时间:2019-07-24 09:16:16  来源:  作者:
直接拿来用!一文学会 Docker 镜像

作者 | 羽生结弦

责编 | 胡雪蕊

出品 | CSDN(ID:CSDNnews)

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

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

 

1、拉取镜像

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


 

docker[image]pull NAME[:TAG]

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

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


 

docker pull ubuntu:16.04

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

直接拿来用!一文学会 Docker 镜像

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

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

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

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


 

docker pull registry.cn-shanghai.aliyuncs.com/ubuntu:16.04

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

直接拿来用!一文学会 Docker 镜像
 

2、查看镜像信息

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


 

docker images

或者


 

docker image ls

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

直接拿来用!一文学会 Docker 镜像

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

  • REPOSITORY:镜像来源

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

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

  • CREATED:创建时间

  • SIZE:镜像大小

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

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

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

直接拿来用!一文学会 Docker 镜像

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


 

docker inspect [OPTIONS] NAME|ID [NAME|ID...]

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


 

docker inspect 13c9

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

直接拿来用!一文学会 Docker 镜像

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


 

docker history [OPTIONS] NAME|ID

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


 

docker history 13c9

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

直接拿来用!一文学会 Docker 镜像
 

3、搜索镜像

 

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


 

docker search [option] keyword

option 常用的参数如下:

直接拿来用!一文学会 Docker 镜像

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


 

docker search mysql

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

直接拿来用!一文学会 Docker 镜像
 

 

4、除/清除镜像

1. 删除镜像

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


 

docker rmi IMAGE_NAME|IMAGE_ID

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


 

docker rmi u16.04

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

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

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

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

2. 清理镜像

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

docker image [options] prune

option 常用的参数如下:

直接拿来用!一文学会 Docker 镜像

5、导入导出镜像

1. 导出

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


 

docker save image -o file

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


 

docker save 13c9 -o u1604.tar

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

直接拿来用!一文学会 Docker 镜像

2. 导入

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


 

docker load -i file

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


 

docker load -i u1604.tar

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

直接拿来用!一文学会 Docker 镜像


6、上传镜像

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


 

docker push NAME[:TAG]|[REGISTRY_HOST[:REGISTRY_PORT]/]

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


 

docker push 13c9


 

作者简介:朱钢,CSDN博客专家,.NET高级开发工程师,7年一线开发经验,参与过电子政务系统和AI客服系统的开发,以及互联网招聘网站架构设计,目前就职于北京恒创融慧科技发展有限公司,从事企业级安全监控系统的开发。

【END】



Tags:Docker 镜像   点击:()  评论:()
声明:本站部分内容及图片来自互联网,转载是出于传递更多信息之目的,内容观点仅代表作者本人,如有任何标注错误或版权侵犯请与我们联系(Email:2595517585@qq.com),我们将及时更正、删除,谢谢。
▌相关推荐
以下文章来源于转角遇到GitHub ,作者欧盆索思当前 Docker 的火热程度毋庸置疑。我们都知晓 Docker 的镜像是基于层的概念构建的。如何让镜像更小,一直是大家关注的,网上也有很...【详细内容】
2020-09-28  Tags: Docker 镜像  点击:(111)  评论:(0)  加入收藏
从前面的文章可知,当我们运行一个web项目时需要在一个容器上运行,而当我们运行一个容器时需要一个镜像,如果我们本地没有镜像,那么docker就会自动从镜像仓库中下载,默认是从docke...【详细内容】
2020-08-31  Tags: Docker 镜像  点击:(105)  评论:(0)  加入收藏
docker 镜像操作常用命令(1)、搜索镜像(在dockerhub仓库中查找centos的镜像)[root@localhost docker]#docker search centos找出一堆centos镜像 镜像的结构: registry_name/r...【详细内容】
2020-04-26  Tags: Docker 镜像  点击:(64)  评论:(0)  加入收藏
对于刚接触容器的人来说,他们很容易被自己构建的 Docker 镜像体积吓到,我只需要一个几 MB 的可执行文件而已,为何镜像的体积会达到 1 GB 以上?本文将会介绍几个奇技淫巧来帮...【详细内容】
2020-04-04  Tags: Docker 镜像  点击:(45)  评论:(0)  加入收藏
当运行容器时,使用的镜像如果在本地中不存在,docker 就会自动从 docker 镜像仓库中下载,默认是从 Docker Hub 公共镜像源下载。下面我们来学习: 1、管理和使用本地 Docker 主机...【详细内容】
2019-09-24  Tags: Docker 镜像  点击:(94)  评论:(0)  加入收藏
Docker 是一个基于GO语言开发的开源应用容器,开发者可以打包应用和相关包,到一个轻量级 、可移植的容器中,并且可以发布到任何机器 ,实现虚拟化,完全使用沙箱机制,而且性能开销很低。...【详细内容】
2019-07-24  Tags: Docker 镜像  点击:(274)  评论:(0)  加入收藏
▌简易百科推荐
一、前因闲来没事,想着升级下树莓派中的应用,没曾想,全是最新的,害我以为被黑客眷顾,帮我升级了。多方查证,才知道,是上次搭建的photoprism搞的鬼,不过也不全是它的锅,只是它的yml文...【详细内容】
2021-12-28  闲余悟道    Tags:Docker   点击:(2)  评论:(0)  加入收藏
一、为什么要搭建主从架构呢1.数据安全,可以进行数据的备份。2.读写分离,大部分的业务系统来说都是读数据多,写数据少,当访问压力过大时,可以把读请求给到从服务器。从而缓解数据...【详细内容】
2021-12-15  实战Java    Tags:Docker   点击:(12)  评论:(0)  加入收藏
在网页中渲染公式一直是泛学术工具绕不开的一个功能,最近更新产品功能,正巧遇到了这个需求,于是使用容器方式简单实现了一个相对靠谱的公式渲染服务。分享出来,希望能够帮到有类...【详细内容】
2021-12-01  编程菌zfn    Tags:Docker   点击:(11)  评论:(0)  加入收藏
1.1 docker命令直接部署1.1.1 拉取镜像docker pull wurstmeister/zookeeperdocker pull wurstmeister/kafka1.1.2 启动zookeeper容器docker run -d --name myzookeeper -p 2...【详细内容】
2021-11-15  无    Tags:docker   点击:(48)  评论:(0)  加入收藏
01 前言 顺着docker的发展,很多测试的同学也已经在测试工作上使用docker作为环境基础去进行一些自动化测试,这篇文章主要讲述我们在docker中使用浏览器进行自动化测试如果可以...【详细内容】
2021-10-29  小码哥聊软件测试    Tags:Docker   点击:(42)  评论:(0)  加入收藏
因为你懂得的原因,下载docker镜像速度非常喜感,故收集几个国内常用的docker镜像。Docker中国区官方镜像地址:https://registry.docker-cn.com网易163的镜像http://hub-mirror.c...【详细内容】
2021-10-28  抓蛙程序猿    Tags:docker   点击:(48)  评论:(0)  加入收藏
环境:Spring5.3.10通常,应用程序开发人员不需要对ApplicationContext实现类进行子类化。相反,SpringIOC容器可以通过插入特殊集成接口的实现来扩展。使用BeanPostProcessor自定...【详细内容】
2021-10-26  Java网络研发架构师    Tags:Spring   点击:(34)  评论:(0)  加入收藏
我们在很多场景下都需要做笔记,来对抗遗忘,一份好的笔记不仅能在需要的时候供我们查阅,也能帮助我们归纳整理知识提高做事效率。 目前市面上有很多云笔记软件,体验上各有不同,但...【详细内容】
2021-10-11  运维贼船    Tags:docker   点击:(62)  评论:(0)  加入收藏
1. Nacos官网Nacos Docker 快速开始2. Clone 项目git clone https://github.com/nacos-group/nacos-docker.git3. cd 到nacos-docker 路径下 直接启动即可cd nacos-dockerdo...【详细内容】
2021-09-16  程序狗爱化妆    Tags:Nacos   点击:(109)  评论:(0)  加入收藏
今天不做保姆级教程,分享奶爸常用、好用的Docker应用。有了这些Docker,Nas的可玩性会大幅提高,有时候奶爸也在想,刨去官方套件不考虑的话,Nas真的是差不多。如果小伙伴们有需要,后...【详细内容】
2021-09-03  晋升奶爸的垃圾佬    Tags:Docker   点击:(169)  评论:(0)  加入收藏
相关文章
    无相关信息
最新更新
栏目热门
栏目头条