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

docker第三篇 镜像管理基础的更多相关文章

  1. Docker镜像管理基础篇

    Docker镜像管理基础篇 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.Docker Images Docker镜像还有启动容器所需要的文件系统及其内容,因此,其用于创建并启 ...

  2. Docker 学习3 Docker镜像管理基础

    一.docker 常用操作及原理 1.docker 常用操作 2.docker 机制 1.docker client端是通过http或者https与server端通信的.个 2.docker 镜像可以 ...

  3. Docker镜像管理基础与基于容器的镜像制作示例

    一.Docker镜像 Docker镜像是启动Docker容器的一个非常重要的组件.Docker各组件之间的关系如图: Docker镜像含有启动容器所需要的文件系统及其内容,因此Docker镜像用于创建 ...

  4. 3、Docker镜像管理基础

    Docker image     # docker image ls REPOSITORY TAG IMAGE ID CREATED SIZE redis -alpine 23d561d12e92 d ...

  5. 一张图比較 Docker 和 Git:镜像管理设计理念

    Docker 的镜像管理设计中大量借鉴了 Git 的理念. 以下这张图将对两者的核心概念和操作进行比較,有助于大家高速掌握管理 Docker 镜像的正确方式. watermark/2/text/aHR ...

  6. Docker笔记6:Docker 常见命令及镜像管理

    目  录 一.Docker 常用命令 docker version 命令 docker info 命令 二.Docker 镜像管理 搜索镜像:docker search 镜像名 获取镜像:docker ...

  7. 3.docker镜像管理基础

    一.docker镜像相关 1.About Docker Image Docker镜像含有启动容器所需要的文件系统及其内容,因此,其用于创建并启动docker容器. 采用分层构建机制,最底层为bootf ...

  8. docker镜像管理基础

    [root@node01 ~]# docker pull quay.io/coreos/flannel:v0.10.0-amd64 v0.10.0-amd64: Pulling from coreos ...

  9. Docker 系列三(容器管理).

    一.运行容器 1.基于镜像新建一个容器并启动 : tomcat:8.0 -i:交互式操作 -t:终端 -rm:容器退出后随之将其删除,可以避免浪费空间 -p :端口映射 -d :容器在后台运行 指明了 ...

随机推荐

  1. linux系统下的rz、sz详解

    对于linux服务器来说,通常我们是通过一些ssh工具进行远程访问连接的,而对于经常使用它的人来说,少不了将文件上传下载到服务器.如何能够快速的同服务器进行文件的交互尤为重要.不然每次都打开单独的ss ...

  2. Idea创建SpringBoot项目整合Hibernate

    然后next 依赖包选择,Web必须 pom.xml: <?xml version="1.0" encoding="UTF-8"?> <pro ...

  3. [Scikit-learn] 1.1 Generalized Linear Models - Comparing various online solvers

    数据集分割 一.Online learning for 手写识别 From: Comparing various online solvers An example showing how diffe ...

  4. 卸载未能成功安装的mysql时的解决方案

    在win10系统中,首次未能成功安装mysql,于是试图卸载了mysql相关的应用,结果提示有卸载未完成的应用,无法卸载, 在阅读文档之后发现,可以在任务管理器中的详细信息中找到[dllhost.ex ...

  5. 【首发】uExitCode解释

    uExitCode 进程退出码,一般设置为0,不是的话也没有错误. 它的主要作用是,通知调用这个程序的其他程序退出的原因. 以前在dos下可能用的较多,现在windows下用的很少,而且windows ...

  6. Linux selinux 防火墙

    cat /etc/selinux/config # This file controls the state of SELinux on the system. # SELINUX= can take ...

  7. Vue.js 关于双向绑定的一些实现细节

    Vue.js 是采用 Object.defineProperty 的 getter 和 setter,并结合观察者模式来实现数据绑定的. 当把一个普通 Javascript 对象传给 Vue 实例来作 ...

  8. 学习笔记:CentOS7学习之十八:Linux系统启动原理及故障排除

    目录 学习笔记:CentOS7学习之十八:Linux系统启动原理及故障排除 18.1 centos6系统启动过程及相关配置文件 18.1.1 centos6系统启动过程 18.1.2 centos6启 ...

  9. hdoj4276(树形dp+分组背包)

    题目链接:https://vjudge.net/problem/HDU-4276 题意:给出一棵树,起点为1,时间为V,终点为n,每个点有一个价值a[u],每条边有一个时间花费w,求在时间V内到达终点 ...

  10. 15.Ansible安装与配置简单版

    Ansible是一个简单高效的自动化运维管理工具,用Python开发,能大批量管理N多台机器,可以并发的在多台机器上部署应用.安装软件.执行命令.配置和编排任务. 一.Ansible工作机制 从图中可 ...