文章目录
- @[toc]
- 1 Docker 简介
- 1.1 为什么需要 Docker
- 1.2 容器与虚拟机比较
- 1.3 Docker 的优势
- 1.4 Docker 与 Podman 比较
- 2 Docker 安装与配置
- 2.1 Docker 的基本组成
- 2.2 CentOS 7 安装 Docker
- 2.3 配置阿里云镜像加速器
- 2.4 验证安装
- 2.5 Docker 为什么比虚拟机快
文章目录
- @[toc]
- 1 Docker 简介
- 1.1 为什么需要 Docker
- 1.2 容器与虚拟机比较
- 1.3 Docker 的优势
- 1.4 Docker 与 Podman 比较
- 2 Docker 安装与配置
- 2.1 Docker 的基本组成
- 2.2 CentOS 7 安装 Docker
- 2.3 配置阿里云镜像加速器
- 2.4 验证安装
- 2.5 Docker 为什么比虚拟机快
1 Docker 简介
1.1 为什么需要 Docker
开发环境、测试环境、生产环境不一致,导致应用部署时频繁出现环境差异问题。传统方式需要为每个环境准备完整的部署文件,配置复杂且无法跨平台复用。
Docker 基于 Go 语言实现,核心目标是Build, Ship and Run Any App, Anywhere。它将应用及其运行环境打包成镜像,镜像在 Docker 容器中运行,容器在任何操作系统上行为一致。
1.2 容器与虚拟机比较
| 对比项 | 传统虚拟机 | Docker 容器 |
|---|---|---|
| 虚拟化层级 | 虚拟出硬件,运行完整 OS,再运行应用 | 应用进程直接运行于宿主内核 |
| 内核 | 每个虚拟机有独立内核 | 共享宿主机内核,无自己的内核 |
| 硬件虚拟 | 需要 Hypervisor 虚拟化硬件 | 无硬件虚拟,直接复用宿主机资源 |
| 隔离性 | 完整 OS 级隔离 | 进程级隔离,容器间互相隔离,各有独立文件系统 |
| 启动速度 | 分钟级 | 秒级 |
| 体积 | GB 级 | MB 级 |
| 资源占用 | 高,冗余步骤多 | 低,直接复用宿主机 OS |
1.3 Docker 的优势
| 优势 | 说明 |
|---|---|
| 更快速的应用交付和部署 | 只需交付镜像文件,加载即运行 |
| 更便捷的升级和扩缩容 | 扩容从天级缩短到分钟级甚至秒级 |
| 更简单的系统运维 | 开发、测试、生产环境高度一致 |
| 更高效的计算资源利用 | 内核级虚拟化,一台物理机可运行大量容器 |
1.4 Docker 与 Podman 比较
Podman 是 RedHat 推出的无守护进程容器引擎,工具集包括:
| 工具 | 功能 |
|---|---|
| Podman | Pod 和容器镜像管理 |
| Buildah | 容器镜像构建 |
| Skopeo | 容器镜像检查与管理 |
| Runc | 容器运行时 |
| Crun | 可选运行时 |
Docker 与 Podman 核心区别:
| 对比项 | Docker | Podman |
|---|---|---|
| 守护进程 | 依赖 Docker Daemon 常驻进程 | 无守护进程,直接与内核交互 |
| 安全性 | 守护进程拥有 Root 权限 | 支持 Rootless 容器,安全性更高 |
| 镜像构建 | 内置构建能力 | 需要 Buildah 辅助构建 |
| 架构 | 独立多合一 | 模块化设计 |
2 Docker 安装与配置
2.1 Docker 的基本组成
| 核心概念 | 说明 |
|---|---|
| 镜像 (Image) | 只读模板,用于创建容器 |
| 容器 (Container) | 镜像的运行实例,可启动、停止、删除,容器间互相隔离 |
| 仓库 (Repository) | 存放镜像的地方,Docker Hub 是最大的公开仓库,国内有阿里云、网易云等 |
Docker 采用 Client-Server 架构,Docker Daemon 运行在主机上,客户端通过 Socket 连接访问。
2.2 CentOS 7 安装 Docker
前提条件:CentOS 7 及以上版本。
安装步骤:
# 安装 gcc 环境yum-yinstallgcc yum-yinstallgcc-c++# 安装依赖软件包yuminstall-yyum-utils# 设置阿里云镜像仓库yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo# 更新 yum 软件包索引yum makecache fast# 安装 Docker CEyum-yinstalldocker-ce docker-ce-cli containerd.io# 启动 Dockersystemctl startdocker# 验证版本dockerversion卸载步骤:
# 停止 Docker 服务systemctl stopdocker# 卸载 Docker 软件包yum remove docker-ce docker-ce-cli containerd.io# 删除 Docker 数据目录rm-rf/var/lib/dockerrm-rf/var/lib/containerd2.3 配置阿里云镜像加速器
登录阿里云控制台,进入「容器镜像服务」,获取加速器地址。执行以下配置脚本:
# 创建 Docker 配置目录mkdir-p/etc/docker# 写入镜像加速器配置tee/etc/docker/daemon.json<<-'EOF' { "registry-mirrors": ["https://xxxxx.mirror.aliyuncs.com"] } EOF# 重新加载配置并重启 Dockersystemctl daemon-reload systemctl restartdocker将
https://xxxxx.mirror.aliyuncs.com替换为你在阿里云控制台获取的专属加速器地址。
2.4 验证安装
# 运行测试镜像dockerrun hello-world执行流程:本地查找镜像 → 本地不存在则从 Docker Hub 拉取 → 下载到本地后创建容器并运行。
2.5 Docker 为什么比虚拟机快
| 原因 | 虚拟机 | Docker |
|---|---|---|
| 抽象层数 | 需要 Hypervisor 实现硬件虚拟化 | 无 Hypervisor,直接使用物理机硬件资源 |
| OS 内核加载 | 每次新建需加载完整 OS 内核,启动分钟级 | 直接利用宿主机内核,新建容器秒级完成 |
下一篇将介绍 Docker 的常用命令操作。