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 位)
  • 权限:拥有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

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

  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输出成功信息,说明环境配置完成。
相关推荐
古法老登瞎折腾1 小时前
大数据智能运维实战(十一):运维 MCP 的工程化——权限、限流、审计与错误处理
java·大数据·运维·spring ai·mcp
琥珀.1 小时前
mysql中json数组转列表查询
linux·运维·服务器
dawnsky.liu2 小时前
在 RHEL 中使用 goose 实现远程主机管理
linux·运维·ai
Linux运维技术栈4 小时前
CVE-2026-91403 高危漏洞修复:Rocky Linux 9 多版本 JDK 环境清理实操
java·linux·运维
云上先途14 小时前
企业 AI 服务部署周期多久,会不会影响原有业务运转?
大数据·运维·人工智能
执伞人ONLY5 小时前
AI知识库自动化知识加工没做对,人工整理永远追不上知识产生
运维·人工智能·自动化
叼烟扛炮5 小时前
Linux 学习笔记(三十三):线程互斥——互斥锁(Mutex)与死锁
linux·运维·服务器·笔记·学习·1024程序员节
无足鸟ICT6 小时前
【RHCA+】who命令(查看已登陆用户)
linux·运维·服务器
RacentCLM6 小时前
证书即服务CaaS:从申请、续期到部署的自动化链路拆解
运维·数据库·自动化·ssl
注塑机数据采集联网7 小时前
注塑机生产管控MES系统应用
大数据·运维·服务器·人工智能·物联网