一、Docker 基础概念
- Docker: 一个容器化平台,可将应用程序及其依赖打包成轻量级、可移植的容器。
- 镜像: 只读模板,用于创建 Docker 容器,包含运行应用程序所需的代码、运行时、系统工具和库。
- 容器: 镜像的运行实例,是一个隔离的进程空间,包含应用程序及其运行环境。
- Docker 仓库: 存储和分发镜像的地方 (如 DockerHub)。

二、Docker 架构概览
Docker 采用客户端 - 服务器的分布式架构,分为以下几个关键部分:
- Docker Client (客户端)
- Docker Daemon (守护进程)
- Docker Image (镜像)
- Docker Container (容器)
- Docker Registry (镜像仓库)
这些组件通过标准 API 进行交互,共同构建了一个完整的容器管理生态系统。

1. Docker 客户端 (Docker Client)
Docker 客户端是用户与 Docker 的主要交互方式,通常是通过命令行工具 (CLI) 实现的。它接受用户的指令,并将这些指令通过 RESTful API 发送给 Docker Daemon 处理。
主要功能:
- 镜像管理:拉取、构建、上传镜像。
- 容器管理:创建、启动、停止、删除容器。
- 日志与状态查询:查看容器状态、日志和性能指标。
2. Docker 守护进程 (Docker Daemon)
Docker Daemon 是 Docker 的核心后台服务,负责实际执行容器的创建、运行和管理任务。它在主机上运行,监听 Docker API 请求。
主要功能:
- 容器管理:负责启动、停止和销毁容器。
- 镜像管理:下载、存储和分发镜像。
- 资源分配:管理容器的 CPU、内存、网络等资源。
- 网络功能:配置容器间的网络通信。
3. Docker 镜像 (Docker Image)
Docker 镜像是容器的只读模板,包含了运行应用所需的所有文件、依赖和配置。它类似于虚拟机的快照,但更轻量。
特点:
- 分层结构:Docker 镜像采用联合文件系统 (UnionFS) 技术,由多层叠加组成。每一层都对应一次文件系统的更改操作。
- 可复用:不同的镜像可以共享底层的公共层,显著减少存储空间需求。
4. Docker 容器 (Docker Container)
容器是镜像的运行实例,包含了应用程序及其运行环境。它是 Docker 的核心对象,提供了轻量级、隔离的运行环境。
特点:
- 隔离性:每个容器运行在自己的用户空间中,拥有独立的文件系统、网络和进程空间。
- 高效性:与虚拟机不同,容器共享宿主机的操作系统内核,因此启动速度更快,资源占用更少。
5. Docker 仓库 (Docker Registry)
Docker Registry 是存储和分发镜像的服务,类似于代码仓库。Docker 官方提供了公共镜像库 Docker Hub,用户也可以搭建私有仓库。
三、Docker 安装
- 需要在操作系统上安装 Docker 引擎才能使用 Docker 命令。
- 安装方法因操作系统而异 (Linux、Windows、macOS),需参考官方文档进行安装。

四、Linux 部署 Docker
检查内核版本
Docker 要求内核版本至少为 3.10 或更高
uname -r # 查看内核版本命令

安装 docker 依赖包
sudo yum install -y yum-utils device-mapper-persistent-data lvm2

配置 Docker 国内镜像源 (清华大学源)
yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
安装 docker
yum install -y docker-ce docker-ce-cli containerd.io

启动 Docker 服务并验证 Docker 是否正常运行
systemctl start docker # 启动 Docker
sudo systemctl enable docker # 开机自启
docker version # 查看 Docker 版本

创建 Docker 配置文件
在 /etc/docker 目录下创建配置文件 daemon.json,添加以下内容:
vim /etc/docker/daemon.json
{
"registry-mirrors": [
"https://docker.m.daocloud.io",
"https://hub-mirror.c.163.com",
"https://mirror.baidubce.com",
"https://your preferred_mirror",
"https://dockerhub.icu",
"https://docker.registry.cyou",
"https://docker-cf.registry.cyou",
"https://dockercf.jsdelivr.fyi",
"https://docker.jsdelivr.fyi",
"https://dockertest.jsdelivr.fyi",
"https://mirror.aliryuncs.com",
"https://dockerproxy.com",
"https://mirror.baidubce.com",
"https://docker.nju.edu.cn",
"https://docker.mirrors.sjtug.sjtu.edu.cn",
"https://docker.mirrors.ustc.edu.cn",
"https://mirror.iscas.ac.cn",
"https://docker.rainbond.cc"
]
}
重启 Docker 服务进行测试
systemctl restart docker # 重启服务
docker pull hello-world # 拉取 hello-world 镜像
docker run hello-world # 运行镜像
docker images # 查询镜像



