docker学习笔记(一)——初识docker

1.基本概念
Docker 容器是资源分割和调度的基本单位,封装整个服务的运行时环境,用于构建、发布和 运行分布式应用的一个框架。它是一个跨平台、可移植并且简单易用的容器解决方案。可以快速自动化地部署应用,并通过操作系统内核技术(namespaces、 cgroups 等)为容器提供资源隔离与安全保障。Docker 作为轻量级的虚拟化方式,实现了 PaaS 平台的高效部署、运行和维护。
2.使用docker的目的
(1)取消了线上线下环境的差异,使用镜像实现标准开发环境的构建,简化了持续集成,测试与发布的过程。从新定义了软件开发、测试、交付和部署的流程。
(2)docker很强的跨平台性
(3)高效的资源利用率,隔离容器没有管理程序的额外开销,共享操作系统,性能更优,负载更低。与传统的虚拟技术相比,是一个轻量级的,启动速度更快,并且可以根据业务需求进行横向扩展优化服务性能。
(4)环境标准化和版本控制 可以使用 Git 等工具对 Docker 镜像进行版本控制,相比基于代码的版本控制来说,能够 对整个应用运行环境实现版本控制,一旦出现故障可以快速回滚。 Docker 压缩和备份速度更快,镜像启动也像启动一个普通进程一样快速
(5)Docker 官方构建了一个镜像仓库,组织和管理形式类似于 GitHub,其上已累积了成千上 万的镜像。这为开发者提供了巨大便利。
3.docker体系结构介绍
Docker 是(CIient/Server,CS)架构体系。Docker 客户端是远 程控制器,可通过 TCP REST 向Docker Host 发送请求,包括创建容器、运行容器、保存容 器、删除容器等请求。Docker 服务端的 Daemon 对客户端的请求进行相应的管理,随后通过 driver 转发至容器中的 libcontainer 执行环境。libcontainer 提供与不同 Linux 内核隔离的接口, 类似命名空间及控制组。这种架构允许多个容器在共享同一个 Linux 内核的情况下完全隔离地运行。
4.应用场景
简化配置——将运行环境和配置放到代码中进行配置,降低了硬件环境与环境之间的耦合度
代码流水线管理——docker提供了一个从开发环境到生产环境一致的开发环境,简化了代码流水线
提高开发效率
隔离应用——将不同环境的代码的应用通过容器技术部署到一个服务器上,实现较低成本下的应用隔离
整合服务器——可以有效的分配资源,提高服务器的利用率
调适能力——提供了检查点设置,版本设置,查看容器之间的差别利于bug调试
多租户环境——一套代码多个容器部署应用,不担心产生冲突
快速部署——通过进程创建一个容器,不需要是直接销毁,无需担心重新启动带来的开销

你可能感兴趣的:(docker)