--- title: 基础概念 description: Docker 的基础概念 keywords: - Docker - 基础概念 tags: - Docker/基础 - 技术/操作系统 author: 仲平 date: 2024-02-20 --- Docker 是一个开源的容器化平台,它允许开发者打包应用及其依赖到一个可移植的容器中,然后在任何支持 Docker 的系统上运行这个容器。容器化技术使得应用从环境配置中解脱出来,增强了应用的可移植性、效率和安全性。 ## Docker 核心概念 - **容器(Containers)**:容器是 Docker 的核心,可以被理解为一个轻量级、可执行的软件包,包含了运行某个应用所需的全部内容——代码、运行时环境、库、环境变量和配置文件等。你可以把容器想象成一个独立的小型计算机,它在一个隔离的环境中运行应用。 - **镜像(Images)**:镜像是创建 Docker 容器的模板。镜像是静态的,包含了运行应用所需的代码、库、环境变量和配置文件。可以把镜像想象成容器的“蓝图”。创建容器时,Docker 会从镜像中读取这些信息。 - **仓库(Repositories)**:仓库是集中存放镜像的地方。Docker Hub 是最著名的公共仓库,但用户也可以创建私有仓库来存储和管理自己的镜像。 - **Dockerfile**:Dockerfile 是一个文本文件,包含了一系列的指令和参数,用于自动化构建 Docker 镜像的过程。通过编写 Dockerfile,开发者可以定义如何构建镜像,包括添加文件、运行命令和配置环境等。 - **Docker Compose**:Docker Compose 是一个用于定义和运行多容器 Docker 应用的工具。通过一个 YAML 文件,你可以配置应用服务所需的所有容器,然后使用一个命令同时创建和启动所有这些容器。 ## Docker 工作原理 Docker 使用容器来运行应用,容器运行在 Docker 引擎之上。Docker 引擎负责管理容器的生命周期,包括容器的创建、启动、停止、移动和删除。容器与虚拟机相比,占用的资源更少,启动更快,因为容器共享宿主机的内核,而不需要模拟整个操作系统。 ## Docker 设计架构 **Docker 的架构主要基于客户端 - 服务器(Client-Server)模型**,涉及几个关键组件:Docker 客户端、Docker 服务器(也称为守护进程)、Docker 镜像、容器、仓库等。 - **Docker 客户端(Client)**:Docker 客户端是用户与 Docker 交互的主要方式。用户通过运行 Docker 客户端命令来告诉 Docker 守护进程需要做什么。例如,构建镜像、运行容器、停止容器等操作都是通过客户端发起的。 - **Docker 服务器(守护进程,Daemon)**:Docker 守护进程运行在宿主机上,处理客户端发来的请求,如创建、运行、监控容器,构建和存储镜像等。守护进程与其他 Docker 守护进程通信,管理 Docker 服务。 Docker 客户端和守护进程可以在同一系统上运行,也可以将 Docker 客户端连接到远程 Docker 守护进程。 Docker 客户端和守护进程使用 REST API 通过 UNIX 套接字或网络接口进行通信。 ![](https://static.7wate.com/2024/02/20/e41a6be58cc8343414a8632c578ab2cc-docker-architecture.webp)