Docker 基本概念¶
Docker 镜像(Image)¶
Docker 镜像是容器的基础,它是一个只读的模板,包含了运行应用程序所需的所有文件、依赖项和配置。镜像可以通过 Dockerfile 定义,并通过分层存储机制进行构建和优化。
- 分层存储:Docker 镜像采用分层存储机制,每一层代表镜像的一个变更。这种设计使得镜像的构建和共享更加高效。
- 镜像仓库:镜像可以存储在本地或远程仓库中,例如 Docker Hub 或私有 Registry。
Docker 容器(Container)¶
容器是 Docker 镜像的运行实例。它是一个轻量级的、独立的运行时环境,包含了应用程序及其依赖项。容器与宿主机共享操作系统内核,但通过 Namespace 和 Cgroups 实现了资源隔离和限制。
- 隔离机制:Docker 使用 Linux 的 Namespace 技术实现进程、网络、文件系统等资源的隔离。
- 资源管理:通过 Cgroups,Docker 可以限制容器的 CPU、内存、磁盘 I/O 等资源使用。
镜像仓库(Registry)¶
镜像仓库是用于存储和分发 Docker 镜像的服务。常见的公共仓库包括 Docker Hub,用户也可以搭建私有仓库来管理内部镜像。
- 镜像推送与拉取:用户可以将本地镜像推送到仓库,或从仓库拉取镜像到本地。
- 镜像签名与验证:Docker 支持镜像签名功能,确保镜像的完整性和安全性。
Docker 网络(Network)¶
Docker 提供了多种网络模式,用于管理容器之间的通信以及容器与外部网络的连接。
- Bridge 网络:默认的网络模式,容器通过虚拟网桥与宿主机通信。
- Host 网络:容器直接使用宿主机的网络栈,无需虚拟化。
- Overlay 网络:用于跨主机的容器通信,常用于 Docker Swarm 或 Kubernetes 集群。