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输出成功信息,说明环境配置完成。
相关推荐
我爱学习好爱好爱2 小时前
ELK日志分析平台(四):Kibana 7.17.10 部署与基本配置(与ES01同机,基于Rocky Linux 9.6)
linux·运维·elk
TrueDei2 小时前
10年学习Linux大师说这些命令不会等于不会Linux
linux·运维·学习
只说证事2 小时前
计算机应用技术专业,1+X证书选哪个好?
运维·服务器
014-code2 小时前
手把手带你解读 Dockerfile - 最快上手方法
java·docker·容器·持续部署
勇闯逆流河2 小时前
【Linux】基础开发工具(gcc/g++,makefile)
linux·运维·服务器
爱丽_2 小时前
Linux 目录结构与常用命令速查(服务器必备)
linux·运维·服务器
卢傢蕊2 小时前
Nginx 核心功能
运维·服务器·网络
江湖有缘2 小时前
基于华为openEuler系统部署MicroBin粘贴板工具
华为·docker·华为云·openeuler
卤炖阑尾炎2 小时前
Nginx 核心功能全解析:正向代理、反向代理、缓存与 Rewrite 实战
运维·nginx·缓存