Docker核心概念与环境安装

一、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 位)
  • 权限:拥有rootsudo权限
  • 网络:能访问外网(配置阿里云源)
步骤 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

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

  1. 登录阿里云官网 → 控制台 → 产品与服务 → 容器镜像服务 → 镜像工具 → 镜像加速器
  2. 选择 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.
...(后续是环境验证的详细说明)

三、关键问题说明

  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输出成功信息,说明环境配置完成。
相关推荐
乘云数字DATABUFF4 天前
5分钟部署开源APM Databuff:OpenTelemetry全链路追踪入门实战
运维·后端
Patrick_Wilson4 天前
从「改个端口」到 502:Next.js on k8s 的容器端口、Service 映射与 env 覆盖
docker·kubernetes·next.js
Suroy5 天前
DockerView-Go:用 Go 写一个终端 Docker 监控工具,顺便做了个 Web 仪表盘
docker
云恒要逆袭5 天前
运行你的第一个Docker容器
后端·docker·容器
荣--6 天前
一键部署不是为了省时间 —— 它是把"买来的 PaaS"变成"自己的平台"的拐点
运维·zabbix·工程化·一键部署·平台化·边界设计
江华森6 天前
动手实战学 Docker — 从零到集群编排完全指南
运维
宋均浩6 天前
# Docker 镜像瘦身实战:从 1.2G 到 80MB 的五个优化步骤
ci/cd·docker
Avan_菜菜6 天前
FRP 内网穿透完整实战:从 HTTP 映射到 HTTPS 自签代理
运维·nginx·https
程序员老赵7 天前
10 分钟部署 OpenCode:Docker 一键安装,浏览器打开就能用 AI 写代码(附完整命令与排错)
docker·容器·ai编程
WangMingHua1117 天前
LM Studio Docker 部署——本地大模型一键启动
docker