1.鸟瞰容器生态系统: 做到心里有数
1.1容器生态系统____docter(容器代名词)

1,容器核心技术: 指能够让Container (容器)在host(主机,服务器)运行起来的技术

(1)容器规范

容器规范: runtime spec , image format spec(运行时规范,图像格式规范)
(2)容器runtime: 是容器真正运行的地方, runtime 需要与 操作系统 kernel 紧密协作,为容器提供运行环境。

lxc 是linux 上老牌的容器, runtime。 docker 最初也是用 lxc 作为runtime
runc 是 Docker 自己开发的容器 runtime, 符合oci规范, 也是现在 Docker 默认runtime
rkt 是 CoreOS 开发的容器 runtime, 符合OCI规范, 因而可以运行Docker 的 容器
(3)容器管理工具
光有 runtime 还不够, 用户的有工具来管理容器。 容器管理工具对内 与 runtime 交互, 对外与 用户提供 interface(界面,插件),比如CLI, 这就好比出了 JVM ,还得提供java 命令让用户能够启停应用。

lxd 是lxc 的管理工具
runc 的管理工具是 docker engine. docker engine(引擎) 包含后台 deamon 和cli 两部分, 我们通常提到的Docker , 一般值 docker engine
rkt 的管理工具是 rkt cli
(4)容器定义工具: 允许用户定义容器的内容和属性, 这样容器就能够被保存,共享和重建

docker image 是 Docker 容器的模板, runtime 依据 docker image 创建容器
dockerfile 是 包含若干命令的文本文件,可以通过这些命令创建出 docke image.
ACI(App Container Image) 与 docker image 类似,只不过它是CoreOS 开发的 rkt 容器的image 格式
(5)Registry(记录): 容器是通过image 创建的 ,需要一个仓库来统一存放 image, 这个仓库就叫做 Registy
企业 可以 用 Docker Registry 构建私有的 Registry

Docker Hub(https://hub.docker.com) 是Docker 为公众提供的 托管 Registry, 上面有很多现成的image, 为 Docker 用户提供了极大的便利
Quay.io(https://quay.io/) 是另一个公共托管 Registry, 提供与 Docker Hub 类似的服务
(6)容器os:专门运行 容器的操作系统

2,容器平台技术:容器核心技术 使得容器可以 在 单个 host 上 运行, 而容器平台技术 能够让 容器 作为集群 在 分布式 环境 中运行

(1)容器编排引擎

docker swarm 是 Docker 开发的容器编排引擎
kubernetes 是 Google 领导开发的开源容器编排引擎, 同时支持 Docker 和 CoreOS 容器
mesos 是一个通用的集群资源调度的平台, mesos 与 marathon 一起提供容器编排引擎功能

(2)容器管理平台:是架构在容器编排引擎之上的一个更为通用的平台。
通常容器管理平台 能够 支持多种编排引擎, 抽象编排引擎的实现细节, 为用户提供更方便的功能, 比如application catalog 和一键应用部署等
Rancher 和ContainShip 是容器管理平台的典型代表

(3)基于容器的PaaS: 为微服务 应用开发人员 和 公司 提供了 开发, 部署 ,和 管理应用的 平台, 使用户不必关心底层基础设施,而专注于应用的开发
Deis ,Flynn 和Dokku 都是开源容器 Paas 的代表

3.容器支持技术

(1) 容器网络
容器的出现使网络拓扑 变得更加动态 和复杂。 用户需要专门的解决方案 来管理 容器 与 容器, 容器与其他实体之间的连通性和隔离性
docker network 是 Docker 原生网络的解决 方案。 除此外,还可以采用第三方开源解决方案,例如: flannel,weave 和calico . 不同方案的设计与实现方式 不同,各有优势和特点, 应根据实际需要来选型

(2)服务发现:保存容器集群中所有微服务最新的信息,比如 IP 和端口, 并对外提供API,提供服务查询功能

(3)监控:对于基础架构非常重要,而容器的动态特征对监控提出更多挑战,针对容器环境,已经涌现出很多监控工具和方案

docker ps、top/stats 是 Docker 原生的命令行监控工具, 除了命令行, Docker 也提供了 stats API, 用户可以通过 HTTP 请求获取 容器的状态信息
sysdig, cAdvisor/Heapster 和 Weave Scope 是其他开源的容器的监控方案
(4)数据管理:容器经常会在不同的 host 之间迁移, 如何保证持久化数据也能够动态迁移, 是Rex-Ray 这类数据管理工具提供的能力

(5)日志管理

docker logs 是 Docker 原生的日志工具, 而 logspout 对日志提供了路由功能, 它可以收集不同容器的日志并转发给其他工具进行后处理
(6)安全性: OpenSCAP 是一种容器安全工具, 对容器镜像进行扫描,发现潜在漏洞



1.3.1 环境选择:容器需要管理工具,runtime 和 操作系统
(1)管理工具: Docker Engine 因为 Docker 最流行使用最广泛
(2) runtime: runc, Docker 的默认 runtime.
(3) 操作系统: Ubuntu。虽然存在诸如CoreOS 的容器 OS .因为考虑处于初学阶段,选择熟悉,之后在学OS,效率更高
1.3.2 安装 Docker

1.配置Docker 的apt 源
(1)安装包,允许apt 命令HTTPS 访问Docker 源
sudo apt-get install \ apt-transport-https \ ca-certificates \ curl \ software-properties-common
(2)添加 Docker 官方的GPG key
curl-fsSL https://download.docker.com/linux/ubuntu/gpg|sudo apt-key add -
(3) 将Docker 的源添加到/etc/apt/sources.list
sudo add-apt-repository \ "deb [arch=amd64] https"//download.docker.com/linux/ubuntu \ $(lsb_release -cs) \ stable"
2.安装Docker
sudo apt-get update $ sudo apt-get install docker-ce
1.4 运行第一个容器
docker run -d -p 80:80 httpd




systemctl restart docker.service
1.5 小结

浙公网安备 33010602011771号