一、Docker 核心概念与价值解析
1. 三大核心概念
| 概念 | 通俗解释 | 核心特征 |
|---|---|---|
| 镜像 (Image) | 容器的 "安装包 / 模板",只读不可修改 | 分层存储、可复用、体积小 |
| 容器 (Container) | 镜像运行后的实例,可读写 | 独立隔离、轻量级、秒级启停 |
| 仓库 (Registry) | 存储 / 分发镜像的 "仓库"(如 GitHub) | 公有仓库 (Docker Hub)/ 私有仓库 |
2. Docker 架构
Docker 采用C/S 架构:
- 客户端 (Client):通过
docker命令发送指令(如run/pull) - 守护进程 (Daemon):运行在宿主机,接收并执行客户端指令
- 镜像仓库 (Registry):远程存储镜像的服务(如 Docker Hub / 阿里云)
3. Docker vs 虚拟机
| 维度 | Docker 容器 | 传统虚拟机 (VM) |
|---|---|---|
| 架构 | 共享宿主机内核,无独立 OS | 模拟硬件,运行完整 OS |
| 资源占用 | MB 级,占用极少 | GB 级,资源消耗大 |
| 启动速度 | 秒级 | 分钟级 |
| 隔离性 | 进程级隔离(轻量) | 硬件级隔离(完全) |
| 移植性 | 跨平台无缝运行 | 依赖硬件 / 虚拟化软件 |
4. 对测试工作的核心价值
- 环境一致性:测试环境与生产环境 1:1 复刻,解决 "我这能跑,你那不行"
- 快速部署:秒级启动测试环境,无需手动配置依赖(如数据库 / 中间件)
- 资源节约:一台服务器可运行多个隔离容器,替代多台虚拟机
- 版本隔离:同时测试不同版本的应用(如 Python 3.8/3.9),互不干扰
- 一键回滚:容器销毁后重建即可恢复干净环境,测试成本极低
二、Ubuntu 下 Docker 完整安装与配置(实操步骤)
前置条件
- 服务器:Ubuntu 18.04/20.04/22.04(64 位)
- 权限:拥有
root或sudo权限 - 网络:能访问外网(配置阿里云源)
步骤 1:服务器环境初始化
bash
# 1. 更新系统包索引
sudo apt update -y
# 2. 安装必要依赖(允许apt通过HTTPS访问仓库)
sudo apt install -y apt-transport-https ca-certificates curl software-properties-common
# 3. 清理旧版本Docker(如有)
sudo apt remove -y docker docker-engine docker.io containerd runc
步骤 2:配置阿里云 Docker 软件源
bash
# 1. 添加阿里云Docker GPG密钥(验证包完整性)
curl -fsSL https://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
# 2. 添加阿里云Docker软件源(替换官方源,提升安装速度)
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
步骤 3:安装 Docker 稳定版
bash
# 1. 重新更新包索引(加载新添加的Docker源)
sudo apt update -y
# 2. 安装Docker CE(社区版)、Containerd
sudo apt install -y docker-ce docker-ce-cli containerd.io
步骤 4:配置镜像加速与基础优化
bash
# 1. 创建Docker配置目录
sudo mkdir -p /etc/docker
# 2. 写入阿里云镜像加速配置(替换为你的阿里云加速地址,文末附获取方法)
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://你的阿里云加速地址.mirror.aliyuncs.com"],
"log-driver": "json-file",
"log-opts": {
"max-size": "100m",
"max-file": "3"
},
"storage-driver": "overlay2"
}
EOF
# 3. 重启Docker守护进程(使配置生效)
sudo systemctl daemon-reload
sudo systemctl restart docker
阿里云镜像加速地址获取方法:
- 登录阿里云官网 → 控制台 → 产品与服务 → 容器镜像服务 → 镜像工具 → 镜像加速器
- 选择 Ubuntu 系统,复制对应的加速地址替换上述配置
步骤 5:权限优化与开机自启
bash
# 1. 将当前用户加入docker组(无需sudo即可执行docker命令,避免权限问题)
sudo usermod -aG docker $USER
# 2. 配置Docker开机自启
sudo systemctl enable docker
# 3. 生效用户组配置(无需重启服务器,重新登录即可)
newgrp docker
步骤 6:验证安装与运行第一个容器
bash
# 1. 检查Docker版本(验证安装成功)
docker --version
# 2. 检查Docker服务状态
systemctl status docker
# 3. 运行hello-world容器(验证环境正常)
docker run hello-world
预期输出:
Hello from Docker!
This message shows that your installation appears to be working correctly.
...(后续是环境验证的详细说明)
三、关键问题说明
-
权限优化后仍需 sudo? 执行
newgrp docker后,若仍提示权限不足,需退出当前终端重新登录(组配置生效)。 -
镜像加速配置不生效? 检查
daemon.json格式(JSON 不允许注释,且逗号不能多余),重启 Docker 后执行docker info,查看Registry Mirrors是否显示配置的地址。 -
**hello-world 容器运行失败?**大概率是网络问题,检查服务器能否访问外网,或重新配置镜像加速地址。
总结
- 核心概念:镜像是只读模板,容器是镜像的运行实例,仓库用于存储镜像;Docker 比虚拟机更轻量、启动更快,核心价值是环境一致性。
- 安装关键:Ubuntu 下需先配置阿里云源提升安装速度,再安装 Docker 稳定版,配置镜像加速减少拉取镜像时间。
- 验证标准 :
docker --version显示版本、docker run hello-world输出成功信息,说明环境配置完成。