概述
Docker 是一个用于开发、发布和运行应用程序的开放平台。 Docker 使您能够将应用程序与基础设施分离,以便您可以快速交付软件。借助 Docker,您可以像管理应用程序一样管理基础设施。通过利用 Docker 的方法来传送、测试和部署代码,您可以显着减少编写代码和在生产中运行代码之间的延迟。
Docker的应用场景
-
微服务架构: 每个服务独立容器化,便于管理和扩展。
-
CI/CD流水线: 与 Jenkins/GitLab CI 集成,实现自动化构建和测试。
-
开发环境标准化: 新成员一键启动全套依赖服务(如数据库、消息队列)。
-
云原生基础: Kubernetes 等编排工具基于 Docker 管理容器集群。
核心优势
- 跨平台一致性: 解决"在我机器上能跑"的问题,确保开发、测试、生产环境一致。
- 资源高效: 容器直接共享主机内核,无需虚拟化整个操作系统,节省内存和 CPU。
- 快速部署: 秒级启动容器,支持自动化扩缩容。
- 隔离性: 每个容器拥有独立的文件系统、网络和进程空间。
核心概念
- 容器(Container): 轻量化的运行实例,包含应用代码、运行时环境和依赖库。基于镜像创建,与其他容器隔离,共享主机操作系统内核(比虚拟机更高效)。
- 镜像(Image): 只读模板,定义了容器的运行环境(如操作系统、软件配置等)。通过分层存储(Layer)优化空间和构建速度。
- Dockerfile: 文本文件,描述如何自动构建镜像(例如指定基础镜像、安装软件、复制文件等)。
- 仓库(Registry): 存储和分发镜像的平台,如 Docker Hub(官方公共仓库)或私有仓库(如 Harbor)。