docker镜像解析和数据容器卷

docker镜像解析

概念

轻量级、可执行的独立软件包,用来打包软件环境和基于运行环境开发的软件(整体打包)(层层叠加的整体)

uninonFS镜像分层

union File system联合文件系统,支持对文件系统的修改作为一次次的提交来一层层叠加。Docker 镜像由一些松耦合的只读镜像层组成,Docker负责堆叠这些镜像层,并且将它们表示为单个统一的对象。

  • 一个tomcat镜像有600M,它包括了很多基础的镜像,centos、jdk等,这样才能运行起来tomcat
  • 分层的好处是资源共享多个镜像都从相同的base镜像构建而来,那么宿主机只需要在磁盘保存一份base镜像,同时内存中也只需要加载一份base镜像,就可以为所有容器服务

加载原理

bootfs boot file system

  • 主要包含bootloader和kernel,bootloader引导加载kernel(linux刚启动时加载bootfs),当boot加载完之后,整个内核就在内存中了,此时内存的使用权已归内核,系统卸载bootfs

rootfs root file system

  • 在bootfs之上包含的就是典型linux中的/dev,/proc,/bin,/etc等标准目录文件rootfs就是各种不同操作系统发行版

提交镜像

把容器提交为镜像

  • docker commit -a=’xxx’(作者) -m=’xxxx’(命名空间) 容器id 名字:版本号
    1
    2
    docker commit -a=cxz -m=myc sdf23fwe1 mycentos:1.0
    docker images 查看

数据容器卷

  • 作用
    • 1.持久化容器数据(容器关闭产生数据会消失)
    • 2.容器之间共享数据
  • 命令
    • docker run -v /Masterpath/:/dockerpath
      1
      docker run -it -v /host: /dataVolumeContainer1 -v /host:/dataVolumeContainer2 centos /bin/bash
  • –volumes-from
  • 1.创建一个不需要启动的数据卷容器
  • 2.用–volumes-from连接容器卷
    1
    2
    3
    docker run -d -v /datas --name ddd centos
    docker run -it --name dv1 --volumes-from ddd centos
    docker run -it --name dv2 --volumes-from ddd centos
分享到