Docker学习历程(三):Docker镜像详解

一.镜像的组成解析:

  1. 分层镜像:底层bootfs,上层rootfs;启动容器时,两层都以只读方式挂载
    • bootfs类型可以是btrfs、aufs、lxc,除此之外还需要一个内核,该内核仅用于启动容器中的用户控件
    • rootfs具体表现为一个根文件系统,包含基本的文件和目录
  2. 构建镜像的基本流程:
    1. 预备一个bootfs
    2. 安装最小系统
    3. 按需部署应用
  3. 镜像的读写机制:
    1. 镜像俱为只读属性
    2. 启动容器后在镜像基础上新增当前容器的专用层,该层可进行写入
    3. 容器被删除后,专用读写层会随之删除,所以容器默认无法实现数据的持久化

二.镜像仓库:在历程(一)里有提到过相关内容,补充内容主要是Registry的组成:

  1. repository:在一个registry中可以存在多个repository
  2. index:主要作用提供维护账户信息和检索端口

三.常见顶级仓库:

  1. 网易镜像仓库(需要登录认证):https://c.163yun.com/hub#/m/home/
  2. 阿里云镜像仓库(需要登录认证):https://cr.console.aliyun.com/cn-beijing/instances/images
  3. DaoCloud(道客网络):https://hub.daocloud.io/
  4. Docker Hub(官方仓库):https://hub.docker.com/
  5. Quay:https://quay.io/search

四.镜像制作方法:

  1. 基于已有容器进行镜像的制作
    • 在一个正在运行的容器中进行需求应用的构建
    • 使用docker commit 容器名  进行镜像的提交
      -a指定镜像作者
      -c更改镜像的启动命令,例如-c ‘CMD ["nginx","-g","daemon off"]‘
      -m描述信息
      -p提交镜像时暂停容器
    • 给制作的镜像指定标签
  2. 基于Dockerfile进行镜像制作
    • 另开章节进行记录
  3. 基于Docker Hub自动创建功能

五.使用Docker Hub进行镜仓库的构建

  1. 在Docker Hub注册账号后创建仓库(仓库名即为镜像上传的镜像名)Docker学习历程(三):Docker镜像详解
  2. 远程登录Docker Hub:docker login -u你的用户名
  3. 将本地镜像指定标签后上传 docker 用户名/仓库名:标签

六.使用阿里云容器镜像服务进行镜像仓库的构建

相关推荐