图文转载至https://docs.docker.com/get-started/overview/
Docker概述
Docker是一个用于开发、发布和运行应用程序的开发平台。Docker使您能够将应用程序与基础设施分离,以便可以快速交付软件。借助Docker,可以像管理应用程序一样管理基础设施。通过利用Docker的方法来传送、测试和部署代码,可以显着减少编写代码和在生产中运行代码之间的延迟。
Docker平台
Docker提供了在称为容器的松散隔离环境中打包和运行应用程序的能力。其隔离和安全性可以在给定主机上同时运行多个容器。容器是轻量级的,包含运行应用程序所需的一切,因此不需要依赖主机上安装的内容。可以在工作时共享容器,并确保共享的每个人都获得以相同方式工作的相同容器。
Docker提供了工具和平台来管理容器的生命周期:
- 使用容器开发应用程序及其支持组件。
- 容器成为分发和测试应用程序的单元。
- 准备就绪后,将应用程序作为容器或编排服务部署到生产环境中。无论生产环境是本机数据中心、云提供商还是两者的混合,都是一样的。
可以使用Docker做什么?
快速、一致地交付需求
Docker允许开发人员使用提供应用程序和服务的本地容器在标准化环境中工作,简化了开发生命周期。容器非常适合持续集成和持续交付(CI/CD)工作流程。
考虑一下示例场景:
- 开发人员在本机编写代码并使用Docker容器与同事共享工作。
- 使用Docker将应用程序推送到测试环境中并运行自动和手动测试。
- 发现错误时,可以在开发环境中修复它们,并将其重新部署到测试环境中进行测试和验证。
- 测试完成后,向客户提供修复就像将更新的映像推送到生产环境一样简单。
响应式部署和扩展
Docker基于容器的平台支持高度可移植的工作负载。Docker容器可以在开发人员的本地笔记本电脑、数据中心的物理机或虚拟机、云提供商或混合环境中运行。
Docker的可移植性和轻量级特性还使得动态管理工作负载、根据业务需求几乎实时的扩展或拆除应用程序和服务变得很容易。
在相同硬件上运行更多工作负载
Docker轻量且快速。为基于虚拟机管理程序的虚拟机提供了可行且经济高效的替代方案,因此可以利用更多服务器容量来实现业务目标。Docker非常适合高密度环境以及需要用更少的资源做更多事情的中小型部署。
Docker架构
Docker使用客户端-服务器架构。Docker客户端与Docker守护进程通信,后者负责构建、运行和分发Docker容器的繁复工作。Docker客户端和守护进程可以在同一系统上运行,也可以将Docker客户端连接到远程Docker守护进程。Docker客户端和守护进程使用REST API通过UNIX套接字或网络接口进行通信。另一个Docker客户端是Docker Compose,允许使用由一组容器组成的应用程序。

Docker守护进程
Docker守护进程(dockerd)侦听Docker API请求并管理Docker对象,例如映像、容器、网络和卷。守护进程还可以与其他守护进程通信来管理Docker服务。
Docker客户端
Docker客户端(docker)是许多Docker用户与Docker交互的主要方式。当使用诸如“docker run”之类的命令时,客户端会将这些命令发送到dockerd,由后者执行这些命令,该docker命令使用Docker API。Docker用户端可以与多个守护进程通信。
Docker桌面
Docker desktop是一款适用于Mac、Windows或Linux环境的易于安装的应用程序,是您能够构建和共享容器化应用程序和微服务。Docker desktop包括Docker守护进程(dockerd)、Docker客户端(docker)、Docker Compose、Docker Content Trust、Kubernetes和Credential Helper。更多可参阅Docker桌面: