二 docker 镜像管理基础

一 docker 镜像概念

Docker 镜像含有启动容器所需的文件系统及其内容因此用于创建并启动docker容器

二 docker 镜像机制

分层构建 最底层为bootfs 其上为rootfs

bootfs:系统引导的文件系统 包括bootloader 和 kernel 容器启动完成后会被卸载以节约内存资源

rootfs:bootfs之上  表现为docker容器的根文件系统   传统模式: 系统启动内核挂载rootfs 首先会挂载为只读模式 完整性自检完成后重新挂载为读写模式  docker: rootfs 由内核挂载为只读模式 然后通过联合挂载技术额外挂载一个可写层

位于最底层的为基础镜像 位于下层的镜像为父镜像 最上层为读写层 其余下面的均为只读层

文件系统 overlay2

三 docker Register

启动容器时 docker daemon 会试图从本地获取相关镜像 本地镜像不存在时 其从Registry 中下载镜像到本地

分类

Sponsor Register 第三方的供客户和Docker社区使用 Mirror  Register 第三方的Register 只让客户使用 Vendor  Register 由发布docker镜像的供应商提供Register Private Register 通过设有防火墙和额外的安全层的私有实体提供的Register

四 Register 组成(Repository和index)

Repository: 由某个特定的docker 镜像所有迭代版本组成的镜像仓库一个 Register 存在 多个 Repository Repository: 分为顶级仓库和用户仓库 用户仓库为: 用户名/仓库名 每个仓库有可以包含多个tag 每个标签对应一个镜像  index:维护用户账号 镜像校验以及公共命名空间的信息 相当于为Register 提供了一个完整用户认证等功能的检索接口

五 镜像制作

docker commit [OPTIONS] CONTAINER [REPOSITORY[:TAG]]

一个镜像可以有多个标签

1 docker run --name b1 -it busybox 2 docker commit -p  b1  sha256:d7e9ab8fb9ed53cab3e6ad74b594a40a4a475b9d2622807632b2c3eed702de09 3 后期加标签            镜像id       仓库名称      标签  方式一:    docker tag d7e9ab8fb9ed liutao/httpd:v0.1 方式二:    docker tag liutao/httpd:v0.1 liutao/httpd:latest  4删除镜像 docker image rm liutao/httpd

做镜像可以直接打标签

-a 作者信息 -c 修改基础镜像的执行  docker commit -a "
   
   
xiaoming <[email protected]>" -c 'CMD ["/bin/httpd","-f","-h","/data/html/"]' - p b1 xiaoming/httpd:v0. 2

运行自己运行的镜像

-d 后台运行 docker run --name l1 -d  xiaoming/httpd:v0.2

测试通过的镜像放到仓库中

1. docker hub 创建一个用户 2. 账号:xiaoming001    密码:XXX 3  点击repositories 创建自己的镜像库 4  点击 Create Repository

推送镜像 推送之前需要登录

docker login [操作][服务]  docker login -u xiaoming001  docker push   docker push  xiaoming001/httpd:v0.2

阿里镜像

登录:docker login --username=XXXX registry.cn-hangzhou.aliyuncs.com  标签:docker push registry.cn-hangzhou.aliyuncs.com/xiaoming001:v0.2

猜你喜欢

转载自www.cnblogs.com/taoge8788/p/11468427.html
今日推荐