一.镜像的组成解析:
- 分层镜像:底层bootfs,上层rootfs;启动容器时,两层都以只读方式挂载
- bootfs类型可以是btrfs、aufs、lxc,除此之外还需要一个内核,该内核仅用于启动容器中的用户控件
- rootfs具体表现为一个根文件系统,包含基本的文件和目录
- 构建镜像的基本流程:
- 预备一个bootfs
- 安装最小系统
- 按需部署应用
- 镜像的读写机制:
- 镜像俱为只读属性
- 启动容器后在镜像基础上新增当前容器的专用层,该层可进行写入
- 容器被删除后,专用读写层会随之删除,所以容器默认无法实现数据的持久化
二.镜像仓库:在历程(一)里有提到过相关内容,补充内容主要是Registry的组成:
- repository:在一个registry中可以存在多个repository
- index:主要作用提供维护账户信息和检索端口
三.常见*仓库:
- 网易镜像仓库(需要登录认证):https://c.163yun.com/hub#/m/home/
- 阿里云镜像仓库(需要登录认证):https://cr.console.aliyun.com/cn-beijing/instances/images
- DaoCloud(道客网络):https://hub.daocloud.io/
- Docker Hub(官方仓库):https://hub.docker.com/
- Quay:https://quay.io/search
四.镜像制作方法:
- 基于已有容器进行镜像的制作
- 在一个正在运行的容器中进行需求应用的构建
- 使用docker commit 容器名 进行镜像的提交
-a 指定镜像作者 -c 更改镜像的启动命令,例如-c 'CMD ["nginx","-g","daemon off"]' -m 描述信息 -p 提交镜像时暂停容器 - 给制作的镜像指定标签
- 基于Dockerfile进行镜像制作
- 另开章节进行记录
- 基于Docker Hub自动创建功能
五.使用Docker Hub进行镜仓库的构建
- 在Docker Hub注册账号后创建仓库(仓库名即为镜像上传的镜像名)
- 远程登录Docker Hub:docker login -u你的用户名
- 将本地镜像指定标签后上传 docker 用户名/仓库名:标签
六.使用阿里云容器镜像服务进行镜像仓库的构建