容器其实是一种沙盒技术。顾名思义,沙盒就是能够像一个集装箱一样,把你的应用“装起来”的技术。河阳应用于应用之间,就因为有了边界而不至于相互干扰;而被装进集装箱的应用,也可以被方便的搬来搬去,这其实是PaaS最理想的状态。
云计算服务类型
基础设施级服务laas;平台级服务PaaS;软件级服务SaaS。
容器本质
容器的本质是进程,容器就是未来云计算系统中的进程。容器镜像就是这个系统里的“.exe”安装包
容器和虚拟机对比
容器是应用程序的抽象,将代码和依赖项打包在一起。多个容器可以在同一台计算机上运行,并与其他容器共享OS内核,每个容器在用户空间中作为隔离的进程运行。容器占用的空间少于VM,可以处理更多的应用程序,并且需要的VM和操作系统更少。
docker基本概念
Docker系统有两个程序:docker服务端和docker客户端。
Docker服务端:
是一个服务进程,管理着所有的容器。
Docker客户端:
是docker服务器的远程控制器,可以用来控制docker的服务端进程。
docker的优势
交付物标准化
Docker是软件工程师领域的“标准化”交付组件,最恰到好处的类比是“集装箱”。
集装箱将零散、不易搬运的大量物品封装成一个整体,集装箱更重要的意义在于它提供了一种通用的封装货物的标准,卡车、火车、货轮、桥吊等榆树或搬运工具采用此标准,隧道、桥梁等也采用此标准。以集装箱为中心的标准化设计大大提高了物流体系的运行效率。
传统的软件交付物包括:应用程序、依赖软件安装包、配置说明文档、安装文档、上线文档等非标准化组件。
Docker的标准化交付物称为“镜像”,它包含了应用程序及其所依赖的运行环境,大大简化了应用交付的模式。
一次构建,多次交付
类十余集装箱的“一次装箱,多次运输”,Docker镜像可以做到“一次构建多次交付”。当涉及到应用程序多副本部署或者应用程序迁移时,更能体现、docker的价值。
应用隔离
集装箱可以有效做到货物之间的隔离,是化学物品和视频可以堆砌在一起运输。Docker可以隔离不同应用 程序之间的相互影响,但是比虚拟机开销更小。
总之,容器技术部署速度比较快,开发、测试更敏捷;提高系统利用率,降低资源成本。
namespace 空间隔离
cgroup 资源限制
rootfs 文件系统
Docker三大核心组件
Docker镜像-Docker images
Docker仓库-Docker registeries
Docker容器-Docker containers
Docker仓库
用来保存镜像,可以理解为代码控制中的代码仓库。同样的,Docker仓库也有公有和私有的概念。
公有的Docker仓库名字是Docker Hub。Docker Hub提供了庞大的镜像集合应用。这些镜像可以是自己创建,或者在别人的镜像基础上创建。Docker仓库是Docker的分发部分。
库:registry
公有库:
Docker-hub Daocloud ali 网易蜂巢
私有库:
公司内部使用(自己部署)
分类:
操作系统名称 centos ubuntu
应用名称 nginx tomcat mysql
Tag:表示镜像版本
Docker镜像
Docker镜像是Docker容器运行时的只读模板,每一个镜像由一系列的层(layers)组成。
每一个镜像都可能依赖于由一个或多个下层的组成的另一个镜像。下层那个镜像是上层镜像的父镜像。
镜像名称:
仓库名称+镜像分类+tag名称(镜像版本)
例如:docker.io/nginx:v1
docker.io/nginx:latest
daocloud.io/centos:6
镜像id:64位的id号
基础镜像:一个没有父镜像的镜像,称为基础镜像。