一、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:1 复刻,解决 "我这能跑,你那不行"
  2. 快速部署:秒级启动测试环境,无需手动配置依赖(如数据库 / 中间件)
  3. 资源节约:一台服务器可运行多个隔离容器,替代多台虚拟机
  4. 版本隔离:同时测试不同版本的应用(如 Python 3.8/3.9),互不干扰
  5. 一键回滚:容器销毁后重建即可恢复干净环境,测试成本极低

二、Ubuntu 下 Docker 完整安装与配置(实操步骤)

前置条件
  • 服务器:Ubuntu 18.04/20.04/22.04(64 位)
  • 权限:拥有root或sudo权限
  • 网络:能访问外网(配置阿里云源)
步骤 1:服务器环境初始化
# 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 软件源
# 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 稳定版
# 1. 重新更新包索引(加载新添加的Docker源)
sudo apt update -y

# 2. 安装Docker CE(社区版)、Containerd
sudo apt install -y docker-ce docker-ce-cli containerd.io
步骤 4:配置镜像加速与基础优化
# 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

阿里云镜像加速地址获取方法:

  1. 登录阿里云官网 → 控制台 → 产品与服务 → 容器镜像服务 → 镜像工具 → 镜像加速器
  2. 选择 Ubuntu 系统,复制对应的加速地址替换上述配置
步骤 5:权限优化与开机自启
# 1. 将当前用户加入docker组(无需sudo即可执行docker命令,避免权限问题)
sudo usermod -aG docker $USER

# 2. 配置Docker开机自启
sudo systemctl enable docker

# 3. 生效用户组配置(无需重启服务器,重新登录即可)
newgrp docker
步骤 6:验证安装与运行第一个容器
# 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.
...(后续是环境验证的详细说明)

三、关键问题说明

  1. 权限优化后仍需 sudo?执行newgrp docker后,若仍提示权限不足,需退出当前终端重新登录(组配置生效)。

  2. 镜像加速配置不生效?检查daemon.json格式(JSON 不允许注释,且逗号不能多余),重启 Docker 后执行docker info,查看Registry Mirrors是否显示配置的地址。

  3. hello-world 容器运行失败?大概率是网络问题,检查服务器能否访问外网,或重新配置镜像加速地址。


总结

  1. 核心概念:镜像是只读模板,容器是镜像的运行实例,仓库用于存储镜像;Docker 比虚拟机更轻量、启动更快,核心价值是环境一致性。
  2. 安装关键:Ubuntu 下需先配置阿里云源提升安装速度,再安装 Docker 稳定版,配置镜像加速减少拉取镜像时间。
  3. 验证标准:docker --version显示版本、docker run hello-world输出成功信息,说明环境配置完成。

更多推荐