什么是 Docker?
Docker 是一个用于开发、发布和运行应用程序的开放平台。Docker 使您能够将应用程序与基础设施分离,从而更快速地交付软件。通过 Docker,您可以像管理应用程序一样管理基础设施。利用 Docker 在代码发布、测试和部署方面的方法,您可以大大缩短从编写代码到在生产环境中运行的延迟时间。
Docker 平台
Docker 提供了在一个称为容器的松散隔离环境中打包和运行应用程序的能力。这种隔离和安全性使您可以在同一主机上同时运行多个容器。容器非常轻量化,包含运行应用程序所需的全部内容,因此无需依赖主机上已安装的内容。您可以在工作中共享容器,并确保与您共享的每个人都得到相同的、以相同方式运行的容器。
Docker 提供了工具和平台来管理容器的生命周期:
- 使用容器开发您的应用程序及其支持组件。
- 容器成为分发和测试应用程序的单元。
- 当准备好时,您可以将应用程序作为容器或编排服务部署到生产环境中。无论生产环境是本地数据中心、云服务提供商,还是两者的混合体,都可以采用相同的方式进行部署。
Docker引擎
Docker Engine 是一种用于构建和容器化应用程序的开源容器化技术。Docker Engine 作为一个客户端-服务器应用程序运行,包含以下组件:
- 一个长期运行的守护进程 dockerd,作为服务器。
- 定义接口的 API,供程序与 Docker 守护进程进行通信和指令传递。
- 一个命令行界面客户端 docker。
命令行界面(CLI)通过 Docker API 控制或与 Docker 守护进程交互,支持通过脚本或直接 CLI 命令操作。许多其他 Docker 应用程序也使用这些底层 API 和 CLI。守护进程负责创建和管理 Docker 对象,如镜像、容器、网络和卷。
Docker 架构
Docker 采用客户端-服务器架构。Docker 客户端与 Docker 守护进程(daemon)通信,后者负责执行构建、运行和分发 Docker 容器的核心任务。Docker 客户端和守护进程可以在同一系统上运行,或者你可以将 Docker 客户端连接到远程的 Docker 守护进程。Docker 客户端和守护进程通过 REST API 进行通信,传输方式可以是 UNIX 套接字或网络接口。另一个 Docker 客户端是 Docker Compose,它允许你管理由一组容器组成的应用程序。