书籍来源:《CKA/CKAD应试指南:从Docker到Kubernetes完全攻略》

一边学习一边整理老师的课程内容及实验笔记,并与大家分享,侵权即删,谢谢支持!

附上汇总贴:CKA备考实验 | 汇总_热爱编程的通信人的博客-CSDN博客


镜像的命名

一般情况下,镜像是按照如下格式命名的。

服务器IP:端口/分类/镜像名:tag

如果不指明端口,默认为80,tag默认为latest,比如
192.168.26.101:5000/cka/centos:v2,再比如http://hub.c.163.com/library/mysql:latest。分类也可以不写,比如http://docker.io/nginx:latest。

在把镜像上传(push)到仓库的时候,镜像必须要按这种格式命名,因为仓库地址就是由镜像前面的IP决定的。如果只是在本机使用镜像的话,可以随意命名。

查看当前系统有多少镜像。

##########实操验证##########
[root@vms100 ~]# docker images
REPOSITORY                                                 TAG       IMAGE ID       CREATED         SIZE
nginx                                                      latest    605c77e624dd   16 months ago   141MB
registry.cn-hangzhou.aliyuncs.com/nginx-phpfpm/nginx-end   latest    eca38637b06d   3 years ago     126MB
[root@vms100 ~]# 

对镜像重新做标签

如果想给本地已经存在的镜像起一个新的名字,可以用tag来做,语法如下。

docker tag 旧的镜像名 新的镜像名

tag之后,新的镜像名和旧的镜像名是同时存在的。

步骤1:给镜像做新标签。

##########实操验证##########
[root@vms100 ~]# docker tag registry.cn-hangzhou.aliyuncs.com/nginx-phpfpm/nginx-end xxxx-nginx:v11-v1
[root@vms100 ~]# 

这里是为
http://registry.cn-hangzhou.aliyuncs.com/nginx-phpfpm/nginx-end:1.2重新做个tag,名字为xxxx-nginx:v11-v1,镜像名为xxx-nginx,标签为v11-v1,这样命名的目的是让大家看到命名的随意性,建议tag可以设置为版本号、日期等有意义的字符。

步骤2:再次查看镜像。

##########实操验证##########
[root@vms100 ~]# docker images
REPOSITORY                                                 TAG       IMAGE ID       CREATED         SIZE
nginx                                                      latest    605c77e624dd   16 months ago   141MB
registry.cn-hangzhou.aliyuncs.com/nginx-phpfpm/nginx-end   latest    eca38637b06d   3 years ago     126MB
xxxx-nginx                                                 v11-v1    eca38637b06d   3 years ago     126MB
[root@vms100 ~]# 

可以看到对某镜像做了标签之后,看似是两个镜像,其实对应的是同一个(这类似于Linux里硬链接的概念,一个文件两个名字而已),镜像ID都是一样的。删除其中一个镜像是不会删除存储在硬盘上的文件的,只有把image id所对应的所有名字全部删除,才会从硬盘上删除。

删除镜像

如果要删除镜像的话,需要按如下语法来删除。

语法: docker rmi 镜像名:tag

比如下面要把
http://registry.cn-hangzhou.aliyuncs.com/nginx-phpfpm/nginx-end:1.2删除。

步骤1:删除镜像。

##########实操验证##########
[root@vms100 ~]# docker rmi registry.cn-hangzhou.aliyuncs.com/nginx-phpfpm/nginx-end
Untagged: registry.cn-hangzhou.aliyuncs.com/nginx-phpfpm/nginx-end:latest
Untagged: registry.cn-hangzhou.aliyuncs.com/nginx-phpfpm/nginx-end@sha256:7e90bcf2ecd7cb8569bbde4a81b0524ebf8f5946d99f39e4d4dbc4ede6bd9ff9
[root@vms100 ~]# 

这里可以看到只是简单的一个untagged操作,并没有任何的deleted操作。

步骤2:查看镜像。

##########实操验证##########
[root@vms100 ~]# docker images
REPOSITORY   TAG       IMAGE ID       CREATED         SIZE
nginx        latest    605c77e624dd   16 months ago   141MB
xxxx-nginx   v11-v1    eca38637b06d   3 years ago     126MB
[root@vms100 ~]# 

只有删除最后一个名字,本地文件才会被删除。

步骤3:删除镜像。

##########实操验证##########
[root@vms100 ~]# docker rmi xxxx-nginx:v11-v1
Untagged: xxxx-nginx:v11-v1
Deleted: sha256:eca38637b06d86ac2419b24a148e7b1d815e5b907f95b7a38349afda4adc9a7b
Deleted: sha256:22a233cfde23ec1edfa794e4697abcff2acb9822c3d617f8012bd2b4a59b9cb8
Deleted: sha256:40b915bdf1a5d89edce54fa07f9d78c4bb018f8d82daf4cda0e6dc715efe1f48
Deleted: sha256:5461f362f117f41bf73d4ab290932c1ad0b036c90de4d92c11f23b271d8fa226
Deleted: sha256:8ad45536d5e4c343ec3a99fa8f759784451656862005c26db6a0fd273727d1e6
Deleted: sha256:4f71ea073b438369b87f20ad9cc8aca17efcd777a98ef6a396cebaa84355e46c
Deleted: sha256:1758ea933cbf0900bc59fa45893440675d66d8848c3595f6f6ae9cdac34ecaf0
Deleted: sha256:d8a33133e477d367977987129313d9072e0ec80894ed4c52c2d88186f354c29a
[root@vms100 ~]#

查看镜像的层结构

我们所用的镜像都是从网上下载下来的,它们在制作过程中都是一点点修改的,一步步做出来的。如果要看某镜像这些步骤,可以用docker history命令,语法如下。

docker history 镜像名

查看镜像的结构。

##########实操验证##########
#需要docker pull hub.c.163.com/library/centos后再来查看,之前没有拉取该镜像
[root@vms100 ~]# docker history hub.c.163.com/library/centos
IMAGE          CREATED       CREATED BY                                      SIZE      COMMENT
328edcd84f1b   5 years ago   /bin/sh -c #(nop)  CMD ["/bin/bash"]            0B
<missing>      5 years ago   /bin/sh -c #(nop)  LABEL name=CentOS Base Im…   0B
<missing>      5 years ago   /bin/sh -c #(nop) ADD file:63492ba809361c51e…   193MB
[root@vms100 ~]# 

最上层的CMD定义为,使用这个镜像生成的容器里运行的进程为/bin/bash。

导出镜像

有一些服务器无法连接到互联网,所以无法从互联网上下载镜像。在还没有私有仓库的情况下,如何把现有的镜像传输到其他机器上呢?这里我们就需要把本地已经pull下来的镜像导出为一个本地文件,这样就可以很容易地传输到其他机器。导出镜像的语法如下。

docker save 镜像名 > file.tar

先查看当前目录里的内容:

##########实操验证##########
[root@vms100 ~]# ls
anaconda-ks.cfg  initial-setup-ks.cfg
[root@vms100 ~]# 

步骤1:把http://docker.io/nginx:latest导出为nginx.tar。

##########实操验证##########
#需要docker pull docker.io/nginx后再来做实验
[root@vms100 ~]# docker save docker.io/nginx > nginx.tar
[root@vms100 ~]# ls
anaconda-ks.cfg  initial-setup-ks.cfg  nginx.tar
[root@vms100 ~]# 

如果导出多个镜像的话,语法如下。

docker save 镜像名1 镜像名2 镜像名3 ... > file.tar

不可以使用如下方式。

docker save 镜像名1 > file.tar
docker save 镜像名2 >> file.tar
...

步骤2:导出所有的镜像。

##########实操验证##########
#需要拉去hub.c.163.com/library/wordpress和hub.c.163.com/library/mysql镜像后验证
[root@vms100 ~]# docker save docker.io/nginx hub.c.163.com/library/wordpress hub.c.163.com/library/centos hub.c.163.com/library/mysql > all.tar
[root@vms100 ~]# ls
all.tar  anaconda-ks.cfg  initial-setup-ks.cfg  nginx.tar
[root@vms100 ~]# 

步骤3:删除所有的镜像,有以下3种方法。

(1)关闭docker,清空/var/ib/docker/,记住是清空/var/lib/docker/里的内容,不是删除此目录。

(2)手动一个一个地删除。

(3)写脚本,内容如下。

##########实操验证##########
[root@vms100 ~]# cat rm_all_image.sh
#!/bin/bash
file=$(mktemp)
docker images | grep -v REPOSITORY | awk '{print $1":"$2}' >> $file
while read line ; dodocker rmi $line
done < $file
[root@vms100 ~]#
[root@vms100 ~]# chmod +x rm_all_image.sh
[root@vms100 ~]# ./rm_all_image.sh
Untagged: nginx:latest
Untagged: nginx@sha256:0d17b565c37bcbd895e9d92315a05c1c3c9a29f762b011a10c54a66cd53c9b31
Deleted: sha256:605c77e624ddb75e6110f997c58876baa13f8754486b461117934b24a9dc3a85
Deleted: sha256:b625d8e29573fa369e799ca7c5df8b7a902126d2b7cbeb390af59e4b9e1210c5
Deleted: sha256:7850d382fb05e393e211067c5ca0aada2111fcbe550a90fed04d1c634bd31a14
Deleted: sha256:02b80ac2055edd757a996c3d554e6a8906fd3521e14d1227440afd5163a5f1c4
Deleted: sha256:b92aa5824592ecb46e6d169f8e694a99150ccef01a2aabea7b9c02356cdabe7c
Deleted: sha256:780238f18c540007376dd5e904f583896a69fe620876cabc06977a3af4ba4fb5
Deleted: sha256:2edcec3590a4ec7f40cf0743c15d78fb39d8326bc029073b41ef9727da6c851f
Untagged: hub.c.163.com/library/wordpress:latest
Untagged: hub.c.163.com/library/wordpress@sha256:fa3f8358cca5c4c5a37afca935f586b136353e2de14340788482db3ab0e97dca
Deleted: sha256:dccaeccfba3693896ee17c63257e0159b0c909ac33cc7c846f5598de0d7d19fb
Deleted: sha256:9d9dde03d43e6d7da3832f33c8ab4290157c32038cf02f9b730d982066cee18c
Deleted: sha256:e712cda6350b06680df20dc3f67cbb3460299467a687dfd47a4554949d08715b
Deleted: sha256:665a8cb6d5629102618ac9614511582e03d1623c8fe5fc405037f8bfb72c57b0
Deleted: sha256:7bbc310cf90d2c1b3b0240066af1bd30ff44fa5e0e4109b19c14670441e06b31
Deleted: sha256:f6df728ba54f30e0d216ba3a5810551301833a0583bfe7f0563f59614c25e54b
Deleted: sha256:70ab02f5fd3c72a2f8ba5b0bc56c43313f0b59f8281f3adfd5a44661d0dcdd8d
Deleted: sha256:217150f969f9f1350f400c2052e9837d08716235dc49e295b1cb213e113c50d2
Deleted: sha256:37b99f5af2f52ea8df303bf7283567f2d0b3ed087f0498b17538b1c89bcc618a
Deleted: sha256:7b456ed31909e1210207f16ea9c6a562ec0ecda80c6c437da47c50dadb5131de
Deleted: sha256:81f25a928d4b1fc8e8b52228acf1a7a47c95385688b608193f72ef673f067b26
Deleted: sha256:9305a767577b64e9520395c5952a8ccf6767d1eb3b9d60e15726cdad9adbe4b2
Deleted: sha256:203f95a609cf0c3a13547ae367c64054a0c97737d67d82c8e164c409713912ef
Deleted: sha256:7cbb3ea89c414fc8be3470459efd85ec972545c460ad6c2c7fcfaa2a13e50fbb
Deleted: sha256:d9dcc699f04b520bb533e83e7460ff4da2dcf12dfcc6be7cba8ac13f9e3c1c12
Deleted: sha256:ffad61618a7db0f43237fb3e90c6f76708fe9a3897c594dce1df88a4353edfcc
Deleted: sha256:b36ec8b16c5ea658e42c7a7bc305d8c0c3101efb85160c91a8e2b2bc3fdb6113
Deleted: sha256:72fdb054d2ddd673cd4606acf88d7512e4f86b552fc9ac493e7f3395ab610a9b
Deleted: sha256:2c40c66f7667aefbb18f7070cf52fae7abbe9b66e49b4e1fd740544e7ceaebdc
Untagged: hub.c.163.com/library/centos:latest
Untagged: hub.c.163.com/library/centos@sha256:ab7e9c357fa8e5c822dd22615d3f704090780df1e089ac4ff8c6098f26a71fef
Deleted: sha256:328edcd84f1bbf868bc88e4ae37afe421ef19be71890f59b4b2d8ba48414b84d
Deleted: sha256:b362758f4793674edb79ec5c7192074b2eacf200c006e127069856484526ccf2
Untagged: hub.c.163.com/library/mysql:latest
Untagged: hub.c.163.com/library/mysql@sha256:b2bce1a792237ac5df78877d583f34b09ab023a77130921a6bcce67ce2d24ff0
Deleted: sha256:9e64176cd8a206f88336506fe52cd8f87423147dc197d0250175dddc39465e90
Deleted: sha256:2d79a736de4c447bbad1801e9e4568d6b5f2ba4cc2d5e31a908af9bf51e9b3b3
Deleted: sha256:6e4bd70bb55bcb5ad9850d51c13fd6d40c66aae50bca7741fd940561b2a148e2
Deleted: sha256:75c1f169d72e1475a4427f528343669d2973701589a26791aacfda1dd5df4f66
Deleted: sha256:b934b913f0c1280d85ee196c29a5b246087d74a2a6747b479b4a677f05d11626
Deleted: sha256:47be8aca05b42f1e1a4c9e7058f1eaf59a68119f7e7cbec56b9a68aeb8ed8fc5
Deleted: sha256:ba5061936a764f53b2d1118db1f491f06f4afb0a1a19f94aa0d07ee3ac1a5949
Deleted: sha256:0bfdd0113d6e2adeef68baa97ab6da9900698f656e9ca193b274cb25e67a12ac
Deleted: sha256:edcf46029534ffee6cbf4b621473ad513b66b60ab0e9f8c15107b841c2986755
Deleted: sha256:bd0eace476f07ae4c41014e81823062d43f3c848aa5337061f59833590ff15f9
Deleted: sha256:4a0ae64be2238aa31b864ee1e396b24f672025bcf98656a10e4ee3158b2c8399
Deleted: sha256:295d6a056bfd381abf9c462629066b0458373045a1dca7d13ef6128cb38c977e
[root@vms100 ~]# 

步骤4:查看现有镜像。

##########实操验证##########
[root@vms100 ~]# docker images
REPOSITORY   TAG       IMAGE ID   CREATED   SIZE
[root@vms100 ~]# 

导入镜像

既然上面已经把镜像导出为一个文件了,那么我们就需要把这个文件导入,语法如下。

docker load -i file.tar

步骤1:把nginx.tar导入为镜像。

##########实操验证##########
[root@vms100 ~]# docker load -i nginx.tar
2edcec3590a4: Loading layer [==================================================>]  83.86MB/83.86MB
e379e8aedd4d: Loading layer [==================================================>]     62MB/62MB
b8d6e692a25e: Loading layer [==================================================>]  3.072kB/3.072kB
f1db227348d0: Loading layer [==================================================>]  4.096kB/4.096kB
32ce5f6a5106: Loading layer [==================================================>]  3.584kB/3.584kB
d874fd2bc83b: Loading layer [==================================================>]  7.168kB/7.168kB
Loaded image: nginx:latest
[root@vms100 ~]# 

步骤2:导入所有镜像。

##########实操验证##########
[root@vms100 ~]# docker load -i all.tar
Loaded image: nginx:latest
2c40c66f7667: Loading layer [==================================================>]  129.3MB/129.3MB
ddd6dcab19ff: Loading layer [==================================================>]  204.7MB/204.7MB
f0c367fa8636: Loading layer [==================================================>]  3.584kB/3.584kB
0fd7a67d49b3: Loading layer [==================================================>]  7.699MB/7.699MB
53da01089a82: Loading layer [==================================================>]  10.24kB/10.24kB
3d2582fdede2: Loading layer [==================================================>]  9.728kB/9.728kB
315db89f9acb: Loading layer [==================================================>]  4.096kB/4.096kB
2da371244fc1: Loading layer [==================================================>]   7.68kB/7.68kB
354b4ef9664b: Loading layer [==================================================>]  13.01MB/13.01MB
adfd7c98cdf6: Loading layer [==================================================>]  4.096kB/4.096kB
8747705a74d9: Loading layer [==================================================>]  33.01MB/33.01MB
5a151fa4136e: Loading layer [==================================================>]  11.78kB/11.78kB
c8c6d352c96e: Loading layer [==================================================>]  4.608kB/4.608kB
fed26d7fe7b9: Loading layer [==================================================>]   6.04MB/6.04MB
4214911d5945: Loading layer [==================================================>]  4.608kB/4.608kB
6671cb9eb6b3: Loading layer [==================================================>]  7.168kB/7.168kB
562dd11ed871: Loading layer [==================================================>]  25.12MB/25.12MB
53e16fa1f104: Loading layer [==================================================>]  10.24kB/10.24kB
Loaded image: hub.c.163.com/library/wordpress:latest
b362758f4793: Loading layer [==================================================>]  200.1MB/200.1MB
Loaded image: hub.c.163.com/library/centos:latest
295d6a056bfd: Loading layer [==================================================>]  129.2MB/129.2MB
3b7c5f5acc82: Loading layer [==================================================>]  344.6kB/344.6kB
da4155a7d640: Loading layer [==================================================>]  4.657MB/4.657MB
daf31ec3573d: Loading layer [==================================================>]  1.536kB/1.536kB
904af8e2b2d5: Loading layer [==================================================>]  39.68MB/39.68MB
2bee3420217b: Loading layer [==================================================>]  25.09kB/25.09kB
e5de8ba20fae: Loading layer [==================================================>]  3.584kB/3.584kB
9e615ff77b4f: Loading layer [==================================================>]  240.5MB/240.5MB
fa9efdcb088a: Loading layer [==================================================>]  6.144kB/6.144kB
3c376267ac82: Loading layer [==================================================>]  9.216kB/9.216kB
8129a85b4056: Loading layer [==================================================>]  1.536kB/1.536kB
Loaded image: hub.c.163.com/library/mysql:latest
[root@vms100 ~]# docker images
REPOSITORY                        TAG       IMAGE ID       CREATED         SIZE
nginx                             latest    605c77e624dd   16 months ago   141MB
hub.c.163.com/library/wordpress   latest    dccaeccfba36   5 years ago     406MB
hub.c.163.com/library/centos      latest    328edcd84f1b   5 years ago     193MB
hub.c.163.com/library/mysql       latest    9e64176cd8a2   6 years ago     407MB
[root@vms100 ~]#

CKA备考实验 | 镜像管理相关推荐

  1. CKA备考实验 | 汇总

    书籍来源:<CKA/CKAD应试指南:从Docker到Kubernetes完全攻略> 一边学习一边整理老师的课程内容及实验笔记,并与大家分享,侵权即删,谢谢支持! 1.CKA备考试验 | ...

  2. (五)Docker镜像管理1之镜像操作

    这篇文章将介绍镜像的一般操作,包括查看.查找.下载.删除等. 下载镜像 使用下面的命令来下载镜像 1 docker pull 镜像名称或者镜像名称:标签 1 2 #如果不加标签则表示最新的 docke ...

  3. Docker镜像管理

    Docker镜像管理 一.Docker镜像的基本操作 1.查看本地镜像 2.搜索镜像仓库镜像 3.拉取镜像 4.导出镜像 5.导入镜像 6.删除镜像 二.docker的操作系统 1.Linux系统构成 ...

  4. docker 镜像重命名_Docker镜像管理(二)

    在<Docker镜像管理(一)>中介绍了使用Docker Hub来管理你的Docker镜像,小伙伴们在创建仓库时,细心的同学可能已经发现再次创建private类型的仓库时,不能创建了,如下 ...

  5. 浅谈Docker:DockerLinux安装,镜像管理命令,镜像制作命令,容器管理命令,数据卷,DockerFile,Docker-compose

    什么是Docker? Docker 概念 • Docker 是一个开源的应用容器引擎 • 诞生于 2013 年初,基于 Go 语言实现, dotCloud 公司出品(后改名为Docker Inc) • ...

  6. 比较两大虚拟桌面厂商的系统镜像管理

    虚拟桌面的出现,极大简化了桌面的管理.针对操作系统部分,VMware和Citrix两大厂商都推出了一对多方式的桌面镜像管理.VMware叫Link Clone技术.而Citrix有两种,一种与Link ...

  7. Docker 2.3:Docker 镜像管理

    2.3:Docker 镜像管理 2.3.1:docker search - 搜索镜像 如果要搜索镜像,更好的方式是直接在 Dockerhub 网页上进行搜索,命令行搜索结果并不直观: 基本搜索 会将含 ...

  8. 容器-Docker《二》命令帮助镜像管理

    1 ,Docker命令帮助 官方文档: https://docs.docker.com/reference/ https://docs.docker.com/engine/reference/comm ...

  9. 【CSDN开发云】v1.21 版本,自定义镜像管理

    镜像就是像照镜子一样.我们一般说的镜像是指给系统作个ghost镜像.这样可以在很短时间,很方便的还原出一个完整的系统来. 开发云 v1.21版本发布了,本次上线主要功能: 一.新增镜像管理 (一)云主 ...

最新文章

  1. 没有执行力,谈什么目标理想?
  2. python 调试 cyberbrain 教程
  3. .NET平台开源项目速览(8)Expression Evaluator表达式计算组件使用
  4. 全局变量-基本代码演练
  5. [学习笔记]后缀自动机
  6. 视觉标定,再来一波!!更简单粗暴!!!!!!
  7. 前端学习(2039)vue之电商管理系统电商系统之优化运行server的Eslint警告
  8. ECMAScript 6 学习资料
  9. A卡比N卡画质好,真有此事吗?
  10. Windows Azure Storage (5) Windows Azure Drive
  11. javascript延时setTimeOut与定时setInterval函数区别
  12. 体彩大乐透模拟机选随机号码_模拟
  13. 计算机网络有个红叉怎么办,笔记本电脑右下角网络出现红叉的解决办法
  14. 苹果笔记本什么系统_怎么把苹果笔记本系统改为win7系统?
  15. Kafka 2.8.0 学习
  16. 续篇( 一) TCP 为什么是三次握手,四次挥手?
  17. java爬虫爬豆瓣图书,十一. 爬虫实战(Xpath)- 豆瓣图书TOP250的数据
  18. css实现文字无缝横向滚动
  19. ES聚合之Bucket聚合语法讲解
  20. 总线标准 (计组学习笔记)

热门文章

  1. 【药材识别】基于matlab GUI SVM色差色温判断药材炮制程度系统【含Matlab源码 2241期】
  2. 中嘉和信康盛云数据中心交流推介会在京隆重举行
  3. 精品文章推荐-精品文章推荐
  4. linux 内存的查看
  5. 奶爸程序员 · 养成记
  6. 深度好文!优秀健身场馆管理系统(软件)的十大判断标准
  7. 网页制作,前端基础展示图片和文档
  8. 网站备案信息查询,如何通过网站底部查询网站备案信息
  9. JZOJ 4637 大鱼海棠
  10. Icon下载网站集合