1.什么是Docker

注意

以下内容完全摘自Docker官方文档,仅为学习及技术分享所用,切勿用于商业用途,转载请注明出处。

以下为正文


什么是Docker

概述

Docker是全世界最顶级的软件容器平台。开发人员利用Docker来解决与他人共同开发时遇到的所谓 “代码在我的机器上是可以成功运行的(怎么在别人机器上就运行不了呢?)”问题。运维人员利用Docker来将应用程序运行在完全隔离的独立容器中,以达到更高密度(并行)地运行程序。企业利用Docker来构建敏捷的软件开发交付流程,更快地发布新的功能,更安全地将应用运行在Linux和Windows服务器上。

什么是容器?

使用容器技术,所有运行一个应用程序所需的资源都会被打包到一个单独的容器中。不像VMs(虚拟机技术),容器不需要绑定一个完整的操作系统,只需要运行某个应用程序所需的类库和相关设置。这种方式更加高效、轻量级并保证无论部署在什么环境,应用程序都能保持一致的运行效果。

Docker之于开发

Docker能够自动化程序开发过程中那些重复部署配置开发环境的工作,让开发人员可以更加专注在自己本职工作中:编写伟大的应用。

开发人员使用Docker不需要安装和配置复杂的数据库,也不用担心切换不同开发语言和工具链版本遇到的麻烦。当一个应用程序被docker化之后,所有这些跟开发环境相关的复杂工作将由容器轻松地负责,包括构建环境、共享配置和运行程序。当您的开发团队加入新的共同开发人员,您不再需要花费数小时安装软件和解释设置流程。通过Dockerfiles(描述Docker容器镜像配置的文件)封装好的代码可以简便地进行工作:所有依赖关系都会被打包到Docker镜像文件中,任何Docker使用者都可以在几分钟的时间内完成编辑、安装、构建和调试应用程序。

Docker之于程序开发,具有以下特性:

支持运行任何程序、语言和技术栈

使用Docker可以构建、测试、调试和部署运行在Linux和Windows服务器容器的应用程序,无论该程序是用什么语言开发,并且避免版本不兼容带来的风险。

美好的开发体验

使用Docker可以减少新开发人员培训时间65%,可以快速构建、测试和运行复杂的多容器应用程序,减少安装维护服务器和开发者机器上的软件所浪费的时间。同时,所有的依赖关系都运行中容器内部,解决了“代码在我机器上可以运行,在别人机器上无法运行”的问题。

内置容器调配

Docker自带配置简易的swarm集群管理。在此环境下测试和Debug应用程序内需完成最小化的配置,就能像运行在生产环境中一样。

Docker之于运维

Docker 简化了应用程序交付流程。可以减少发布新功能和修复补丁时遇到的障碍。还可以支持实时扩展应用程序。

Docker是开发团队和IT运维团队的“秘密武器”,允许他们自动地、安全地、便捷地构建、打包、测试和调试应用程序。不再需要wiki和README文档,不再需要冗长的运行说明,不再需要陈旧的运行注意事项。使用Docker的团队清楚他们的镜像无论在开发、测试还是生产环境中都是一致运行的。新的功能和修复补丁可以快速、减少冲突和宕机机间地发布给用户。

更快的打包发布(SHIP 13X MORE)

使用Docker可以更频繁地打包发布应用(平均多13次)。Docker使用团队可以将应用程序的更新、补丁、新功能更快地发布给用户。

快速扩展

内置的集群调度工具可以将Docker集群轻松扩展到成百上千台实例节点和容器上。Docker容器可以在数秒内完成启动和关闭,使程序服务容量更简单地进行扩展,以满足高峰期用户访问流量要求,当高峰期需求过后,可以简便地减小集群容量。

提高工作效率

使用Docker可以提高运行维护工作10倍的工作效率。Docker让部署、认证和解决问题的效率更高,节约了IT运维整体成本。部署更新过程中的宕机时间也减少了,或者当出现小错误时,可以做到快速回滚。

分发和共享内容

可以通过本地或者云端上的Docker Registry(Docker镜像注册库)来构建、管理和分发Docker镜像文件。镜像文件的更新、配置更改和构建历史记录可以自动跨组织、跨团队进行同步和共享。

简便地共享应用程序

Docker保证应用程序在任何地方(硬件环境)都能运行一致。使用Docker镜像,整个技术栈和配置都是镜像的一部分,只需在运行的主机上安装Docker,而无需进行其他配置。

确保应用程序的安全

Docker可以让经过认证的用户安全地进行协作,并保证代码让其能够轻松移植到生产环境。Docker Content Trust和内存安全确保了正确的代码让正确的人在正确的时间执行。

Docker之于企业

Docker是现代化应用程序平台的“心脏”,它是开发与运维,Linux与Windows之间的桥梁。Docker无论在本地环境还是云端都能一致运行,同时支持传统和微服务的架构。使用Docker可以构建、联网、安全地调度容器,管理容器,无论是开发环境还是生产环境。Docker通过支持所有应用程序敏捷地、可运行于云端地、安全地、最优成本地运行,从而支撑企业向数字化运营转变。

所有应用、一个平台

Docker为所有应用提供统一的框架,无论是传统整合型还是微服务,Linux还是Windows,本地的还是云端的,Docker都提供了一个标准的容器和工作流,安全、敏捷并且便捷地运行和维护应用。

快速创新和扩展

Docker容器通过自动化发布流程加快了微服务架构的新应用的交付周期。新的功能可以更频繁、更快速地发布(或回滚)来处理用户需求。


Docker常见应用场景

将传统应用现代化

利用Docker在无需改变任何代码的情况下,可以将已存在的传统应用程序打包进容器中运行,快速提高程序的安全性、节省成本并获得可将其轻松移植到云端。

微服务

容器技术天生就支持使微服务架构模型的开发和部署。

DEVOPS (CI/CD)持续集成并交付

加速并自动化应用程序开发流程,获得更快的迭代,同时解决程序版本库冲突,提升开发效率。

基础设施优化

通过在相同的服务器上并行运行容器化的程序,进一步提高运行效率。Docker通过调配基础设施资源、提高使用率、加速云端集成等措施来优化基础设施,从而节省运行维护成本。

混合云端环境

从私有数据中心到公有云基础设施,Docker允许应用程序在无需重新编码的情况下,便捷地在各种环境中进行移植。加快了往云端迁移的效率,并且支持混合或多种云环境共存的情形。

你可能感兴趣的:(1.什么是Docker)