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