標籤:

Docker學習(一)容器生態系統

Docker學習(一)容器生態系統

來自專欄 Cloud and Edge Computing

CloudMan的《每天5分鐘玩轉Docker容器技術》教程筆記

2018/5/21

核心技術

該技術使得容器能在單個host上運行

Container 容器:

Docker, rkt(CoreOS)等

規範:

1. Runtime spec

2. Image format spec

用以保證容器的可移植性和互操作性

Runtime

容器真正運行的地方,容器只有在runtime中才能運行。

三種流行的容器runtime:lxc(Linux), runc(Docker), rkt(CoreOS) 後兩者符合OCI規範

Container Manager 容器管理工具

對內與runtime交互,對外提供interface

三種流行的容器管理工具:lxd(管理lxc),docker engine(管理runc,分為deamon和cli兩部分),rkt cli(管理rkt)

容器定義工具

用於定義容器的內容和屬性

docker image為容器模板,runtime依據docker

image 創建容器

dockerfile是包含命令的文本文件,通過這些命令創建docker image

ACI(App Container Image)為CoreOS開發的rkt的image格式

Registry

存放image的倉庫

docker registry為企業私有的registry

docker hub為公眾提供的託管registry

quay.io同樣為公眾提供的託管registry

容器OS

CoreOS, atomic,

Ubuntu core


平台技術

該技術能讓容器作為集群在分散式環境中運行

容器編排引擎

動態的可伸縮的系統

orchestration編排:容器管理,調度,集群定義和服務發現

通過編排,容器被組合成微服務應用

三個主流容器編排引擎:docker swarm(Docker開發),kubernetes(Google開發,支持Docker和CoreOS容器),mesos(通用平台,mesos+marathon)

容器管理平台

在編排引擎之上,更為通用

主要有Rancher和ContainerShip

基於容器的PaaS

使用戶不必關心底層基礎設施而專註於應用的開發

以Deis,Flynn和Dokku為代表


支持技術

容器網路

用於管理容器與容器,容器與其他實體之間的連通性和隔離性的解決方案

docker network是Docker原生解決方案

其他的還有flannel,weave和calico

服務發現

讓client知道如何訪問容器提供的服務(保存如IP和埠,對外提供API,提供服務查詢等)

代表:etcd,consul和zookeeper

監控

Docker原生:docker

ps/top/stats docker stats API

其他開源方案:sysdig,cAdvisor/Heapster和Weave Scope

數據管理

容器在host之間的動態遷移

由flocker提供

日誌管理

docker logs和logspout(提供路由功能)

安全性

OpenSCAP對容器進行掃描

推薦閱讀:

Angular 容器部署
1月6日@Kubernetes,2018容器熱點私享會
在Ubuntu 16.04環境下安裝Docker-CE(附視頻教程)
如何快速建立生物信息分析環境
使用Node.js+Docker+GraphQL+MongoDB構建服務

TAG:Docker |