1.Docker是什么?
3.Docker的架构
Docker总体架构为c/s架构,模块之间松耦合,包含了Client, Daemon, Registry, Graph, Driver, Libcontainer以及Docker Container
4.Docker优势
对开发人员来说:Docker提供了简单快速的隔离环境,无需再为配置环境操心,让程序跑到哪都一样; 对运维人员来说:Docker可以快速构建出一整套无状态分布式基础设施,使得运维工作可以通过程序化的脚本来完成; 对业务人员来说:从每月或每周才能发布的新版本到只需1小时就能发布完毕,迅速满足用户新需求; 标准化应用发布:Docker容器包含了运行环境和可执行程序,可以跨平台和主机使用; 节约时间:快速部署和启动,VM启动一般是分钟级,Docker容器启动是秒级; 方便构建基于SOA架构或微服务架构的系统,通过服务编排,更好的松耦合; 节约成本:以前一个虚拟机至少需要几个G的磁盘空间,Docker容器可以减少到MB级; 方便持续集成:通过与代码进行关联使持续集成非常方便; 可以作为集群系统的轻量主机或节点:在IaaS平台上,已经出现了CaaS,通过容器替代原来的主机。
5.Docker常见概念
镜像(image) Docker 镜像(Image)就是一个只读的模板。镜像可以用来创建 Docker 容器,一个镜像可以创建很多容器。Docker 提供了一个很简单的机制来创建镜像或者更新现有的镜像,用户可以下载仓库或者他人的镜像,也可以上传自己的镜像。
容器(container) Docker 利用容器(Container)独立运行的一个或一组应用。容器是用镜像创建的运行实例。它可以被启动、开始、停止、删除。每个容器都是相互隔离的、保证安全的平台。可以把容器看做是一个简易版的 Linux 环境(包括root用户权限、进程空间、用户空间和网络空间等)和运行在其中的应用程序。 容器的定义和镜像几乎一模一样,也是一堆层的统一视角,唯一区别在于容器的最上面那一层是可读可写的。
仓库(repository) 仓库(Repository)是集中存放镜像文件的场所。仓库(Repository)和仓库注册服务器(Registry)是有区别的。仓库注册服务器上往往存放着多个仓库,每个仓库中又包含了多个镜像,每个镜像有不同的标签(tag)。 仓库分为公开仓库(Public)和私有仓库(Private)两种形式。最大的公开仓库是 Docker Hub,存放了数量庞大的镜像供用户下载。国内的公开仓库包括 时速云 、网易云 等,可以提供大陆用户更稳定快速的访问。当然,用户也可以在本地网络内创建一个私有仓库。
6.Docker的主要特性
/ | 物理集装箱 | Docker |
---|---|---|
无关内容 | 集装箱几乎支持所有类型的货物 | 能压缩任何负载和依赖 |
无关硬件 | 标准化的尺寸和交接使得集装箱可以通过货船火车货车运输,用起重机交接不需要换一个容器或者打开集装箱 | 使用操作系统的基本体(像LXC)能一致的跑在几乎任何硬件下,不需要对硬件做额外的修改 |
内容隔离和相互作用 | 不需要关心铁锹会砸坏香蕉。集装箱可以一起堆放一起运输 | 资源、网络和内容的独立避免了依赖问题 |
自动化 | 标准化使得自动化装载卸货和移动变得方便 | 使用标准的操作指令去跑start/stop/commit/search等等。对运营人员:CI、CD、自动化测试、hybrid clouds |
高效 | 不需要打开不需要改动什么,高效的点对点的方式 | 轻量级,几乎没有启动的消耗,高效的移植性和操控性 |
职责分离 | 发货人只需要关心箱子内部的事情,托运人只需要关心箱子外部的东西 | 开发者只需要关心代码层面,运营人员只需要关心服务器的基础环境 |