Docker所代表的Container技术,是对内核的Cgroups、namespace等内容的使用.
Linux Container=lxc
借助BootZdocker可以实现在Mac和Windows上运行
CGroups限制容器的资源使用
Namespace机制,实现荣期间的隔离
chroot,文件系统的隔离
Linux内核提供的限制,记录和隔离进程组所使用的资源,由Google的工程师提出,后来被整合到kernel.
通过不同的子系统(blkio,cpu,cpuacct等)来实现对不同资源使用的控制和记录。
pid,容器有自己独立的进程表和1号进程
net,容器有自己独立的network info
ipc,在ipc通信时候,需要加入额外信息来标示进程
mnt,每个容器有自己唯一的目录挂在
utc,每个容器有独立的hostname和domain
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下来
使用RUN来运行一个DOcker Container
网络设置
Volume 共享文件系统
使用Link来连接两个容器
对于不存在的p_w_picpath,Docker会自动去Registry里面下载对应的p_w_picpath,然后再运行Container
通过Logs命令可以看到Container中Command所指向进程的STDOUT,STDERR数据
通过-e参数,可以在运行container的时候添加系统环境变量
转载于:https://blog.51cto.com/tangyade/1904611