docker镜像管理基础
docker exec -it /bin/shell 交互式进入容器内部
docker build 通过dockerfile生成镜像
docekr push 推送镜像
docker tag 给镜像加标签或改名
docker commit 通过运行的容器生成镜像 一般加-p参数,指的是在生成镜像时暂停镜像
docekr save 导出一个镜像
docekr load 导入一个镜像
docker镜像含有启动容器所需要的文件系统及其内容,因此,其用于创建并启动docker容器
采用分层构建机制,最底层为bootfs,其上为rootfs
bootfs:用于系统引导的文件系统,包括bootloader和kernel,容器启动完成后会被卸载以节约资源
rootfs:位于bootfs之上,表现为docker容器的根文件系统
传统模式中,系统启动之时,内核挂载rootfs时会首先将其挂载为只读模式,完整性自检完成后将其重新挂载为读写模式;
docker中,rootfs由内核挂载为只读模式,而后通过联合挂载技术额外挂载一个可写层;
docker仓库:当没有配置docker仓库时,docker会默认从dockerhub上拉取镜像,如果配置好了docker仓库,可以指定docker从某个仓库拉取镜像例如阿里镜像仓库
docekr镜像层次:
位于下层的镜像称为上层的父镜像(parent image),最底层的称为基础镜像,最上层为可读写层,其下的均为只读层
docekr文件系统:Aufs文件系统是docker最初使用的文件系统,用于为linux文件系统实现联合挂载,docker还支持btrfs,devicemapper和vfs等,后来改成了overlay2.
docker仓库(docker registry):启动容器时,docker daemon会试图从本地获取相关的镜像,本地镜像不存在时,其将从registry中下载该镜像并保存到本地
docekr registry:
registry用于保存docker镜像,包括镜像的层次结构和元数据,用户可自建registry,也可以使用官方的dockerhub
分类:
sponsor registry:第三方的registry,供客户和docker社区使用
mirror registry:第三方的registry,只让客户使用
vendor registry:由发布docker镜像的供应商提供的registry
prvate registry:通过设有防火墙和额外的安全层的私有实体提供的registry
registry的构成:
repository:
由某特定的docker镜像的所有迭代版本所组成的镜像仓库
一个registry可以包含多个repository
repository可分为顶层仓库和用户仓库
用户仓库名称格式为"用户名/仓库名"
每个仓库可包含多个tag(标签),每个标签对应一个镜像
index:
维护用户账户,镜像的校验以及公共命名空间的信息
相当于为registry提供了一个完成用户认证等功能的检索接口
docekr registry中的镜像通常由开发人员制作,而后推送至公共或私有仓库(registry)上保存,供其他人员使用,例如部署到生产环境