现在就开始今天的分享~ M老师:docker 的很多特性都表现在它所使用的文件系统上,比如大家都知道docker的文件系统是分层的,所以它可以快速迭代,可以回滚.这个回滚机制跟github很像,每次提交的时候都会有一个id, 回滚就是跟据这个id来操作的. M老师:docker所支持的文件系统有以下几种:Aufs.devicemapper.btrfs和Vfs,其中前三种是联合文件系统,可以支持分层,VFS 不支持.平时用的最多的是aufs 和devicemapper. M老师:先介绍一下Aufs…
一,前言 众所周知,docker镜像技术的基础是联合文件系统(UnionFS),其文件系统是分层的,那它的分层机制是什么样的呢?共分为几种层呢?又是怎么工作的呢? 目前docker支持的联合文件系统有很多种,包括:AUFS.overlay.overlay2.DeviceMapper.VSF等 Linux 中各发行版实现的 UnionFS 各不相同,所以docker在不同 linux 发行版中使用的也不同.通过docker info 命令可以查看当前系统所使用哪种 UnionFS,常见的几种发行版…
关键词:Docker 联合文件系统 镜像 容器 云信私有化 在本文中,我们来实战构建一个Docker镜像,然后实例化容器,在Docker的生命周期中详细分析一下Docker的文件存储情况和DockerFile优化策略. 在开始实战之前,我们先介绍一个概念,联合文件系统(Union File System).联合文件系统是实现Docker镜像的技术基础,支持对文件系统的修改作为一次提交来一层层的叠加,同时可以将不同目录挂载到同一个虚拟文件系统下.镜像的分层存储和继承就是基于此特性实现. 下面是Do…
docker的镜像分层 docker里的镜像绝大部分都是在别的镜像的基础上去进行创建的,也就是使用镜像的分层结构. 实验 比如说使用dockerfile去创建一个最简单的hello镜像.创建好对应的dockerfile之后去进行创建: FROM alpine:latest MAINTAINER sbb CMD echo "hello world" 执行了上面的命令我们可以看到存在着两个镜像,其中hello_world是我刚刚创建好的镜像. $ docker imgaes alpine…
docker的镜像分层 docker里的镜像绝大部分都是在别的镜像的基础上去进行创建的,也就是使用镜像的分层结构. 实验 比如说使用dockerfile去创建一个最简单的hello镜像.创建好对应的dockerfile之后去进行创建: FROM alpine:latest MAINTAINER sbb CMD echo "hello world" 执行了上面的命令我们可以看到存在着两个镜像,其中hello_world是我刚刚创建好的镜像. $ docker imgaes alpine…
耦合 是指两个或两个以上的体系或者两种运动形式间通过相互作用而批次影响以至联合起来的现象. Nginx与apache 在同一台服务器运行都占用80端口,起冲突这是我们修改其中一个端口为8080 半解耦 同一个操作系统中两者共存各有各的特征 就是在同一个操作系统开启相同的程序 解耦 在当前服务器安装一个虚拟机在安装服务(类似于在自己电脑上安装的虚拟机)然后再把所需要的应用程序在装一边! 解耦解释图                                        半解耦解释图 Hard…
Linux操作系统 Linux操作系统由内核空间和用户空间组成. 内核空间是kernel,用户空间是rootfs, 不同Linux发行版的区别主要是rootfs.比如 Ubuntu 14.04 使用 upstart 管理服务,apt 管理软件包:而 CentOS 7 使用 systemd 和 yum.这些都是用户空间上的区别,Linux kernel 差别不大. 所以 Docker 可以同时支持多种 Linux 镜像,模拟出多种操作系统环境. 分层存储 因为镜像包含操作系统完整的 root 文件…
http://www.infoq.com/cn/articles/analysis-of-docker-file-system-aufs-and-devicemapper Docker镜像 典型的Linux文件系统由bootfs和rootfs两部分组成,bootfs(boot file system)主要包含 bootloader和kernel,bootloader主要是引导加载kernel,当kernel被加载到内存中后 bootfs就被umount了. rootfs (root file s…
基于Volume的互联 为什么需要Volume docker文件系统是分层的,下面的是全部是只读的,最上面的是可写层,容器中的进程如果修改了某个文件,比如修改了下层的某个文件,其实是在最顶层复制下层文件,进行修改,然后覆盖原来的文件,原来的文件就隐藏了. 运行时的容器是镜像叠加一个可写层 docker的存储有两种 一种是镜像, /var/lib/docker/graph 存放本地Image里的分层信息(记录了镜像有那些层,每一层的父层,每一层的大小等) 上图的GraphDB是一个数据库,存储分层…
作为一种容器虚拟化技术,Docker深度应用了操作系统的多项底层支持技术. 早期版本的Docker是基于已经成熟的Linux Container(LXC)技术实现的.自Docker 0.9版本起,Docker逐渐从LXC转移到新的libcontainer(https://github.com/docker/libcontainer)上,并且积极推动开放容器规范runc,试图打造更通用的底层容器虚拟化库. 从操作系统功能上看,目前Docker底层依赖的核心技术主要包括Linux操作系统的命名空间(…