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输出成功信息,说明环境配置完成。
相关推荐
袁煦丞 cpolar内网穿透实验室16 分钟前
出差路上,服务器在我手机里
运维·服务器·docker·容器·智能手机·远程工作·cpolar
小此方19 分钟前
Re:Linux系统篇(十三)特别篇: 实现Linux第⼀个系统程序−进度条
linux·运维·服务器
夏日听雨眠8 小时前
LInux(逻辑地址与物理地址的区别,文件描述符,lseek函数)
linux·运维·网络
哲霖软件9 小时前
ERP 赋能非标自动化行业:破解物料与库存管理难题
运维·自动化
火车叼位10 小时前
替代 Tiny Win10 的 Linux 方案:Debian XFCE 精简桌面搭建
linux·运维
syagain_zsx12 小时前
Linux指令初识(实用篇)
linux·运维·服务器
OYangxf12 小时前
Git Commit Message
运维·git
Alter123012 小时前
从“力大砖飞”到“拟态共生”,新华三定义AI基础设施的系统级进化
大数据·运维·人工智能
王木风12 小时前
终端里的编程副驾:DeepSeek-TUI-项目深度拆解,实测与原理分析
linux·运维·人工智能·rust·node.js
槑槑紫12 小时前
windows系统装轻量版linux开发
linux·运维·服务器