文章目录
- 前言
- 一、Docker 简介
- 1.核心特点
- 2.主要应用场景
- 3.优势
- 二、Linux
- 1.安装前准备
- 1.1 系统要求检查
- 1.2 卸载旧版本 Docker
- 1.3 安装基础依赖
- 2.Docker 安装流程
- 2.1 配置国内镜像源(阿里云)
- 2.2 安装 Docker 引擎
- 2.3 启动 Docker 服务
- 2.4 配置镜像加速器
- 2.4.1 方案一:临时加速(单次有效)
- 2.4.2 方案二:永久配置(推荐)
- 2.4.3 验证配置
- 2.5 用户权限配置(免sudo)
- 2.6 内核参数优化(可选)
- 2.7 存储驱动配置(可选)
- 2.7.1 检查存储驱动
- 2.7.2 配置Overlay2存储
- 2.8 防火墙配置(可选)
- 2.8.1 开放Docker端口
- 2.8.2 Docker与Firewalld集成
- 3.故障排查指南
- 3.1 常见问题解决方案
- 3.1.1 问题1:容器无法访问外网
- 3.1.2 问题2:存储空间不足
- 3.1.3 问题3:镜像拉取失败
- 3.1.3.1 DNS
- 3.1.3.2 镜像源
- 3.2 日志分析命令
- 三、Windows
- 1.安装前的准备工作
- 2.下载和安装(Docker Desktop)
- 2.1 下载
- 2.2 安装
- 2.3 验证安装
- 3.配置Docker
- 3.1 配置镜像加速器(推荐)
- 3.2 配置WSL 2集成
- 4.常见问题与解决方案
- 4.1 虚拟化未开启
- 4.2 Hyper-V冲突
- 4.3 Docker Desktop无法启动
- 4.4 Docker 镜像拉取失败
前言
一、Docker 简介
Docker 是一个开源的容器化平台,用于开发、部署和运行应用程序。它通过容器技术将应用及其依赖项打包到一个可移植的标准化单元中,确保应用在不同环境中高效运行
1.核心特点
特点 | 说明 |
---|---|
轻量级 | 容器共享宿主机的操作系统内核,相比传统虚拟机更节省资源 |
可移植性 | 容器可在任何支持 Docker 的环境中运行,确保一致性 |
隔离性 | 每个容器独立运行,互不干扰,提高安全性 |
快速部署 | 秒级启动和停止,适合动态扩展和微服务架构 |
版本控制 | 支持镜像分层存储和版本管理,便于回滚和更新 |
2.主要应用场景
场景 | 说明 |
---|---|
微服务架构 | 将单体应用拆分为多个独立容器,提高可维护性 |
持续集成/持续部署 (CI/CD) | 自动化构建、测试和发布流程 |
开发环境标准化 | 避免“在我机器上能运行”的问题,统一开发、测试和生产环境 |
云原生应用 | 与 Kubernetes 等编排工具结合,实现弹性伸缩和高可用 |
快速实验与测试 | 快速创建一次性环境,测试新技术或配置 |
3.优势
优势 | 说明 |
---|---|
资源高效 | 相比虚拟机,容器占用更少 CPU 和内存 |
跨平台支持 | 可在 Linux、Windows 和 macOS 上运行 |
丰富的生态系统 | 提供 Docker Hub 等镜像仓库,方便共享和获取预构建镜像 |
简化运维 | 通过 Dockerfile 定义环境,减少手动配置错误 |
二、Linux
1.安装前准备
1.1 系统要求检查
# ubuntu
# 检查内核版本(需3.10+)
uname -r
# 检查系统版本
lsb_release -a
# 输出示例:Ubuntu 22.04 LTS
# centos
# 检查内核版本(需3.10+)
uname -r
# 输出示例:3.10.0-1160.el7.x86_64
# 检查系统版本
cat /etc/redhat-release
# 输出示例:CentOS Linux release 7.9.2009 (Core)
1.2 卸载旧版本 Docker
如果之前安装过Dokcer的,需要先卸载旧的版本
# ubuntu
sudo apt-get remove docker docker-engine docker.io containerd runc
# centos
sudo yum remove -y docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine
1.3 安装基础依赖
# ubuntu
sudo apt-get update
sudo apt-get install -y ca-certificates curl gnupg lsb-release
# centos
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
2.Docker 安装流程
2.1 配置国内镜像源(阿里云)
# ubuntu
# 添加阿里云GPG密钥
curl -fsSL https://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
# 设置仓库
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
# Ubuntu更新APT缓存
sudo apt-get update
# centos
# 设置阿里云Docker仓库
sudo yum-config-manager --add-repo \
http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
# 更新yum缓存
sudo yum makecache fast
2.2 安装 Docker 引擎
# ubuntu
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-compose-plugin
# centos
# 安装最新版本
sudo yum install -y docker-ce docker-ce-cli containerd.io
2.3 启动 Docker 服务
# 启动服务
sudo systemctl start docker
# 设置开机自启
sudo systemctl enable docker
# 验证服务状态
sudo systemctl status docker
2.4 配置镜像加速器
2.4.1 方案一:临时加速(单次有效)
#通用格式(镜像地址不加https://)
sudo docker pull [镜像源]/镜像名:版本号
#使用示例
sudo docker pull docker.m.daocloud.io/hello-world:latest
2.4.2 方案二:永久配置(推荐)
#创建配置文件目录(已存在可跳过)
sudo mkdir -p /etc/docker
#通过命令行生成配置(推荐新手)
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": [
"https://docker.m.daocloud.io",
"https://docker.imgdb.de",
"https://docker-0.unsee.tech",
"https://docker.hlmirror.com"
]
}
EOF
#应用配置(必须执行)
sudo systemctl daemon-reload
sudo systemctl restart docker
2.4.3 验证配置
#测试基础镜像
sudo docker pull hello-world
#查看已用镜像源
docker info | grep Mirrors -A 3
2.5 用户权限配置(免sudo)
# 添加docker用户组
sudo groupadd docker
# 将当前用户加入docker组
sudo usermod -aG docker $USER
# 激活组权限变更
newgrp docker
# 验证权限
docker run hello-world
2.6 内核参数优化(可选)
# 编辑sysctl配置文件
sudo tee /etc/sysctl.d/docker.conf <<-'EOF'
net.ipv4.ip_forward=1
net.bridge.bridge-nf-call-iptables=1
net.bridge.bridge-nf-call-ip6tables=1
vm.max_map_count=262144
fs.may_detach_mounts=1
EOF
# 加载配置
sudo sysctl --system
2.7 存储驱动配置(可选)
2.7.1 检查存储驱动
docker info | grep "Storage Driver"
# 推荐输出:overlay2
2.7.2 配置Overlay2存储
# 停止Docker服务
sudo systemctl stop docker
# 备份原有数据
sudo mv /var/lib/docker /var/lib/docker.bak
# 创建新存储目录
sudo mkdir -p /var/lib/docker
# 修改存储驱动配置
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"storage-driver": "overlay2",
"storage-opts": [
"overlay2.override_kernel_check=true"
]
}
EOF
# 重启服务
sudo systemctl start docker
2.8 防火墙配置(可选)
2.8.1 开放Docker端口
# 开放2375端口(管理端口)
sudo firewall-cmd --zone=public --add-port=2375/tcp --permanent
# 开放常用应用端口
sudo firewall-cmd --zone=public --add-port=80/tcp --permanent
sudo firewall-cmd --zone=public --add-port=443/tcp --permanent
sudo firewall-cmd --zone=public --add-port=3306/tcp --permanent
# 重新加载防火墙
sudo firewall-cmd --reload
2.8.2 Docker与Firewalld集成
# 允许Docker操作防火墙
sudo firewall-cmd --permanent --zone=trusted --add-interface=docker0
sudo firewall-cmd --permanent --zone=trusted --add-port=2376/tcp
sudo firewall-cmd --reload
3.故障排查指南
3.1 常见问题解决方案
3.1.1 问题1:容器无法访问外网
# 解决方案:
sudo firewall-cmd --zone=public --add-masquerade --permanent
sudo firewall-cmd --reload
sudo systemctl restart docker
3.1.2 问题2:存储空间不足
# 查看Docker磁盘使用
docker system df
# 清理无用资源
docker system prune -a -f --volumes
3.1.3 问题3:镜像拉取失败
3.1.3.1 DNS
# 检查DNS配置
sudo cat /etc/resolv.conf
# 如果DNS没有配置,执行下面指令添加
sudo tee /etc/resolv.conf <<< "nameserver 8.8.8.8"
3.1.3.2 镜像源
# 临时使用其他镜像源 或者直接配置永久源,参照上面的 2.4.2 方案二:永久配置
sudo docker pull docker.m.daocloud.io/hello-world:latest
3.2 日志分析命令
# 查看Docker服务日志
journalctl -u docker.service --since "2025-08-01" --no-pager
# 查看容器日志
docker logs -f [容器ID] --tail 100
三、Windows
1.安装前的准备工作
操作系统:Windows 10/11(专业版、企业版或家庭版支持WSL 2)
内存:至少4GB RAM
磁盘空间:至少20GB可用空间
虚拟化
BIOS/UEFI中启用虚拟化
任务管理器 > 性能 > CPU > 虚拟化状态:“已启用”
启用Hyper-V和WSL 2
- Docker Desktop依赖Hyper-V和WSL 2(Windows Subsystem for Linux)
- 打开“控制面板” > “程序” > “启用或关闭Windows功能”
- 勾选 Hyper-V、Windows Subsystem for Linux 和 虚拟机平台
- 重启电脑
- Docker Desktop依赖Hyper-V和WSL 2(Windows Subsystem for Linux)
安装WSL 2
检查WSL版本
wsl --status
安装WSL
wsl.exe --install
设置默认版本为WSL 2
wsl --set-default-version 2
2.下载和安装(Docker Desktop)
2.1 下载
- 网址:官方下载
2.2 安装
- 双击安装包,进入安装向导
- 安装选项
- 勾选 Use WSL 2 instead of Hyper-V(推荐)
- 勾选 Add Docker Desktop to PATH
- 完成安装,点击 Close and restart 重启电脑
最新安装包默认包含两项
2.3 验证安装
启动Docker Desktop
- 安装完成后,系统托盘会显示鲸鱼图标(表明Docker正在运行)
- 安装完成后,系统托盘会显示鲸鱼图标(表明Docker正在运行)
检查版本
docker --version docker-compose --version
测试运行:
docker run hello-world
- 如果输出
Hello from Docker!
表示安装成功
- 如果输出
3.配置Docker
3.1 配置镜像加速器(推荐)
Docker默认从Docker Hub拉取镜像,国内用户可配置其他镜像源提升速度
- 步骤:
打开 Docker Desktop > Settings > Docker Engine
编辑 daemon.json 文件,添加镜像源(推荐地址:最新镜像源参考)
"registry-mirrors": [ "https://docker.m.daocloud.io", "https://hub-mirror.c.163.com" ]
点击 Apply
3.2 配置WSL 2集成
- 启用WSL 2集成:
- Docker Desktop > Settings > Resources > WSL Integration
- 启用默认WSL发行版(如Ubuntu)
- 可添加其他WSL发行版(如Debian、Kali)
4.常见问题与解决方案
4.1 虚拟化未开启
- 错误提示:WSL 2 requires virtualization to be enabled in the BIOS
- 解决方法
- 进入BIOS(开机时按Del/F2/F12)开启虚拟化功能(Intel VT-x/AMD-V)
- 检查任务管理器 > 性能 > CPU > 是否显示“虚拟化:已启用”
4.2 Hyper-V冲突
- 错误提示:Cannot connect to the Docker daemon at unix:///var/run/docker.sock
- 解决方法
- 关闭其他虚拟机软件(如VirtualBox)。
- 通过PowerShell禁用Hyper-V
bcdedit /set hypervisorlaunchtype off Restart-Computer -Force
4.3 Docker Desktop无法启动
- 解决方法
- 重置WSL 2
wsl --shutdown
- 重新安装WSL 2内核
- 重置WSL 2
4.4 Docker 镜像拉取失败
- 解决方法
配置镜像加速器
"registry-mirrors": [ "https://docker.m.daocloud.io", "https://hub-mirror.c.163.com" ]
修改 DNS 设置
"dns": ["8.8.8.8", "114.114.114.114"]