zoukankan      html  css  js  c++  java
  • docker第三篇 镜像管理基础

    docker 工作原理:

      常用的命令docker run 、create 、start... 都是客户端命令

      Docker Daemon 接收到客户端传过来的命令以后 docker daemon会根据对应的命令进行下不易操作。

    Docker镜像描述:

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

      采用分层构建机制,最底层为rootsfs.

        bootfs:用于系统引导的文件系统,包括bootloadere和knernel,容器创建完成后会被卸载,以便节约资源

        rootfs: 位于bootfs之上,表现为docker容器的根文件系统;

        传统模式中,系统启动之时,内核挂载rootfs时会首先将其挂载为只读模式,完整性自检完成后将其重新挂载为读写模式

        docker中,rootfs由内核挂载为只读模式,而后通过联合挂载额外挂载一个可写层

    Docker镜像层:

      位于下层的镜像称为父镜像,最底层的称为基础镜像,最上层的为“可读写层”,其下均为可读层

      镜像层必须基于文件系统才能实现

    Aufs (advanced multi-layered unificaton filesystem)  多层统一文件系统

      用于为Linux文件系统实现“联合挂载”

      aufs是之前的UnionFS的重新实现,2006年有Junjiro Okajima开发

      Dockere最初使用aufs作为容器文件系统层,它目前仍作为存储后端之一来支持

      aufs的竞争产品是oerlayfs, 后者自从自从3.18版本之后被合并到Linux

      docker 的分层镜像,除了aufs,docker,docker还支持btrfs,devicemapper和vfs等

        Ubuntu系统下,docker默认Ubuntu的aufs; 而在centos 7 上,用的是devicemapper

    Docker Regitry

      启动容器时,docker daemon会试图从本地获取相关的镜像,本地镜像不存在时,其将从Register中下载该镜像并保存到本地。

      Registry用于保存docker镜像,包括镜像的层次结构和元数据

      用户可自建Registry,也可以使用官方Docker Hub

    分类:

      Sponsor Registry: 第三方的registry 供客户和社区使用

      Mirror Registry: 第三方的registry, 只让客户使用

      Vendor Registry: 由发布Docker镜像的供应商提供的registry

      Private Registry: 通过设有防火墙和额外的安全层的私有实体提供

    Registry(repository and index)

      repository

        由某个特定的docker镜像的所有迭代版本组成的镜像仓库

        一个Registry中可以存在多个Repository

          Repository可分为“顶级仓库”和“用户仓库”

        每个仓库可以包含多个Tag(标签),每个标签对应一个镜像

      Index

        维护用户账户、镜像的校验以及公共命名空间的信息

        相当于为Registry提供一个完成用户认证等功能的检索接口

      Docker Registry中的镜像通常啊由开发人员制作,而后推送公共或私有Registry上保存,供其他人员使用,例如“部署”到生产环境

    镜像的生成途径

      Dockerfile

      基于容器制作

      Docker Hub automated builds

    基于容器制作镜像

      docker commit  -p b1        此例子基于busybox来做的

        -p 是暂停的意思

        b1 是我的容器名

        (制作容器镜像的时候 容器不能停)

      docker tag 06b972fee176 wang/httpd:v0.1-1    给已有的镜像打标签

      docker tag wang/httpd:v0.1-1 wang/httpd:latest   再打标签

      docker commit -a "Ivy <wang163@.com>" -c 'CMD ["/bin/httpd","-f","-h","/data/html"]' -p t1 wang/httpd:v0.2      制作修改容器运行命令镜像

        -a  指定作者

        -c 指定要运行的命令

        -p 暂停正在运的容器

      docker push dajinjin/httpd  把镜像推到自己的hub仓库上   (docker login -u hub用户名) 

    镜像导出导入

    打包镜像:

      docker save -o myimages.gz wang/httpd:v0.2 wang/httpd:v0.1-1    (将多个镜像打包成一个压缩文件)

    镜像导入:

      docker load -i myimages.gz

    We are down, but not beaten. tested but not defeated.
  • 相关阅读:
    Spring 之注解事务 @Transactional
    哈佛图书馆上的训言
    给入门程序员20条编程经验
    软件开发原则
    生活通用——最佳微小说系列
    springmvc图片文件上传接口
    java写入excel文件poi
    springMVC发送邮件
    SpringMVC整合MongoDB开发 架构搭建
    springMVC操作mongoDB增删改查
  • 原文地址:https://www.cnblogs.com/guniang/p/11599681.html
Copyright © 2011-2022 走看看