1、镜像来源与容器的管理
镜像分为两种:
一种是系统基本都镜像(这种一般用作基础镜像)
另外一种是服务级别的镜像(下载下来就能启动一种容器服务)
2、镜像与容器之间的联系
容器其实是在镜像的最上面加了一层读写层,在运行容器里文件改动时,
会先从镜像里要写的文件复制到容器自己的文件系统中(读写层)。如果容器
删除了,最上面的读写层也就删除了,改动也就丢失了。
所以无论多少个容器共享一个镜像,所做的写操作都是从镜像的文件系统中复制(引用)
过来的操作的,并不会修改镜像的源文件,这种方式提高磁盘利用率。
镜像层只读层,容器层可读写上层开辟容器
若想持久化这些改动,可以通过docker commit将容器保存成一个新的镜像。
3、镜像仓库
阿里云镜像仓库
https://cr.console.aliyun.com/cn-hangzhou/instance/repositories
Docker仓库
$ sudo docker login --username=lycshnr2022 registry.cn-hangzhou.aliyuncs.com
4、部署一个registry 本地仓库
docker仓库主要用于存放docker镜像,docker仓库分为公有仓库和私有仓库,基于registry可以搭建本地私有仓库,使用私有仓库的优点如下:
节省网络带宽,针对每个镜像不用去docker官网仓库下载;
下载docker镜像从本地私有仓库中下载;
组件公司内部私有仓库,方便各部门使用,服务器管理更加统一;
可以基于GIT或者SVN、Jenkins更新本地docker私有仓库镜像版本。
官方提供docker registry来构建本地私有仓库,目前最新版本为v2,registry v2使用go语言编写,在性能和安全性上做了很多优化,重新设计了镜像的存储格式。