Docker所代表的Container技术,是对内核的Cgroups、namespace等内容的使用.

Linux Container=lxc

为什么Docker是云计算必然的现在和未来

借助BootZdocker可以实现在Mac和Windows上运行


CGroups限制容器的资源使用

Namespace机制,实现荣期间的隔离

chroot,文件系统的隔离


Linux内核提供的限制,记录和隔离进程组所使用的资源,由Google的工程师提出,后来被整合到kernel.

通过不同的子系统(blkio,cpu,cpuacct等)来实现对不同资源使用的控制和记录。


pid,容器有自己独立的进程表和1号进程

net,容器有自己独立的network info

ipc,在ipc通信时候,需要加入额外信息来标示进程

mnt,每个容器有自己唯一的目录挂在

utc,每个容器有独立的hostname和domain


为什么Docker是云计算必然的现在和未来

adcanced multi layer unification filesystem

可以实现把多个不同目录的内容合并在一起

允许read-only和read-write目录并存


docker使用aufs来实现分层的文件系统的管理

只读部分定义为p_w_picpath,可写部分是container

p_w_picpath类似一个单链表系统,每个p_w_picpath包含一个指向parent p_w_picpath的指针

没有parent p_w_picpath的p_w_picpath是base p_w_picpath


docker pull {p_w_picpath name}

如果不指定tag的话,会把p_w_picpath的所有的tags都会download下来

为什么Docker是云计算必然的现在和未来

为什么Docker是云计算必然的现在和未来

为什么Docker是云计算必然的现在和未来

为什么Docker是云计算必然的现在和未来


使用RUN来运行一个DOcker Container

网络设置

Volume 共享文件系统

使用Link来连接两个容器


为什么Docker是云计算必然的现在和未来

对于不存在的p_w_picpath,Docker会自动去Registry里面下载对应的p_w_picpath,然后再运行Container

为什么Docker是云计算必然的现在和未来

为什么Docker是云计算必然的现在和未来


为什么Docker是云计算必然的现在和未来

为什么Docker是云计算必然的现在和未来


通过Logs命令可以看到Container中Command所指向进程的STDOUT,STDERR数据

通过-e参数,可以在运行container的时候添加系统环境变量