跳到主要内容
极客日志极客日志面向AI+效率的开发者社区
首页博客GitHub 精选镜像工具UI配色美学隐私政策关于联系
搜索内容 / 工具 / 仓库 / 镜像...⌘K搜索
注册
博客列表
Shell / Bash

Docker 部署配置全流程:Windows 与 Linux 环境

综述由AI生成Docker 是一款开源容器化平台,通过容器技术将应用及其依赖项打包为可移植单元。详述了 Docker 的核心特点与应用场景,并提供了 Linux 和 Windows 双平台的完整部署指南。内容包括环境检查、旧版本卸载、国内镜像源配置、服务启动、权限管理、内核参数优化及防火墙设置。针对 Windows 环境,涵盖了 WSL 2 集成与 Hyper-V 配置。此外,还总结了容器网络、存储空间不足及镜像拉取失败等常见问题的排查方法与日志分析命令,帮助用户快速构建稳定的 Docker 运行环境。

奇形怪状发布于 2026/2/6更新于 2026/6/229 浏览
Docker 部署配置全流程:Windows 与 Linux 环境

Docker 简介

Docker 是一个开源的容器化平台,用于开发、部署和运行应用程序。它通过容器技术将应用及其依赖项打包到一个可移植的标准化单元中,确保应用在不同环境中高效运行。

核心特点

特点说明
轻量级容器共享宿主机的操作系统内核,相比传统虚拟机更节省资源
可移植性容器可在任何支持 Docker 的环境中运行,确保一致性
隔离性每个容器独立运行,互不干扰,提高安全性
快速部署秒级启动和停止,适合动态扩展和微服务架构
版本控制支持镜像分层存储和版本管理,便于回滚和更新

主要应用场景

场景说明
微服务架构将单体应用拆分为多个独立容器,提高可维护性
持续集成/持续部署 (CI/CD)自动化构建、测试和发布流程
开发环境标准化避免'在我机器上能运行'的问题,统一开发、测试和生产环境
云原生应用与 Kubernetes 等编排工具结合,实现弹性伸缩和高可用
快速实验与测试快速创建一次性环境,测试新技术或配置

优势

优势说明
资源高效相比虚拟机,容器占用更少 CPU 和内存
跨平台支持可在 Linux、Windows 和 macOS 上运行
丰富的生态系统提供 Docker Hub 等镜像仓库,方便共享和获取预构建镜像
简化运维通过 Dockerfile 定义环境,减少手动配置错误

Linux 环境部署

安装前准备

系统要求检查

# 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)

卸载旧版本 Docker

如果之前安装过 Docker,需要先卸载旧的版本。

# 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

安装基础依赖

# 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

Docker 安装流程

配置国内镜像源(阿里云)

# 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

安装 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

启动 Docker 服务

# 启动服务
sudo systemctl start docker
# 设置开机自启
sudo systemctl enable docker
# 验证服务状态
sudo systemctl status docker

配置镜像加速器

方案一:临时加速(单次有效)
# 通用格式(镜像地址不加 https://)
sudo docker pull [镜像源]/镜像名:版本号
# 使用示例
sudo docker pull docker.m.daocloud.io/hello-world:latest
方案二:永久配置(推荐)
# 创建配置文件目录(已存在可跳过)
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
验证配置
# 测试基础镜像
sudo docker pull hello-world
# 查看已用镜像源
docker info | grep Mirrors -A 3

用户权限配置(免 sudo)

# 添加 docker 用户组
sudo groupadd docker
# 将当前用户加入 docker 组
sudo usermod -aG docker $USER
# 激活组权限变更
newgrp docker
# 验证权限
docker run hello-world

内核参数优化 (可选)

# 编辑 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

存储驱动配置 (可选)

检查存储驱动
docker info | grep "Storage Driver"
# 推荐输出:overlay2
配置 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

防火墙配置 (可选)

开放 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
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

故障排查指南

常见问题解决方案

问题 1:容器无法访问外网
# 解决方案
sudo firewall-cmd --zone=public --add-masquerade --permanent
sudo firewall-cmd --reload
sudo systemctl restart docker
问题 2:存储空间不足
# 查看 Docker 磁盘使用
docker system df
# 清理无用资源
docker system prune -a -f --volumes
问题 3:镜像拉取失败
DNS
# 检查 DNS 配置
sudo cat /etc/resolv.conf
# 如果 DNS 没有配置,执行下面指令添加
sudo tee /etc/resolv.conf <<< "nameserver 8.8.8.8"
镜像源
# 临时使用其他镜像源 或者直接配置永久源,参照上面的 2.4.2 方案二:永久配置
sudo docker pull docker.m.daocloud.io/hello-world:latest

日志分析命令

# 查看 Docker 服务日志
journalctl -u docker.service --since "2025-08-01" --no-pager
# 查看容器日志
docker logs -f [容器 ID] --tail 100

Windows 环境部署

安装前的准备工作

  • 操作系统:Windows 10/11(专业版、企业版或家庭版支持 WSL 2)
  • 内存:至少 4GB RAM
  • 磁盘空间:至少 20GB 可用空间
  • 虚拟化
    • BIOS/UEFI 中启用虚拟化
  • 启用 Hyper-V 和 WSL 2
    • Docker Desktop 依赖 Hyper-V 和 WSL 2(Windows Subsystem for Linux)
      • 打开'控制面板' > '程序' > '启用或关闭 Windows 功能'
      • 勾选 Hyper-V、Windows Subsystem for Linux 和 虚拟机平台
  • 安装 WSL 2

设置默认版本为 WSL 2

wsl --set-default-version 2

安装 WSL

wsl.exe --install

检查 WSL 版本

wsl --status

重启电脑

任务管理器 > 性能 > CPU > 虚拟化状态:'已启用'

下载和安装 (Docker Desktop)

下载

从官方渠道下载 Docker Desktop 安装包。

安装

  • 双击安装包,进入安装向导
  • 安装选项
    • 勾选 Use WSL 2 instead of Hyper-V(推荐)
    • 勾选 Add Docker Desktop to PATH
    • 完成安装,点击 Close and restart 重启电脑

最新安装包默认包含两项

验证安装

  • 启动 Docker Desktop
  • 如果输出 Hello from Docker! 表示安装成功

测试运行:

docker run hello-world

检查版本

docker --version
docker-compose --version

安装完成后,系统托盘会显示鲸鱼图标(表明 Docker 正在运行)

配置 Docker

配置镜像加速器(推荐)

Docker 默认从 Docker Hub 拉取镜像,国内用户可配置其他镜像源提升速度。

  • 步骤:
    1. 打开 Docker Desktop > Settings > Docker Engine
    2. 编辑 daemon.json 文件,添加镜像源
{
 "registry-mirrors": [
  "https://docker.m.daocloud.io",
  "https://hub-mirror.c.163.com"
 ]
}

配置 WSL 2 集成

  • 启用 WSL 2 集成:
    • Docker Desktop > Settings > Resources > WSL Integration
    • 启用默认 WSL 发行版(如 Ubuntu)

可添加其他 WSL 发行版(如 Debian、Kali)

常见问题与解决方案

虚拟化未开启

  • 错误提示:WSL 2 requires virtualization to be enabled in the BIOS
  • 解决方法
    • 进入 BIOS(开机时按 Del/F2/F12)开启虚拟化功能(Intel VT-x/AMD-V)
    • 检查任务管理器 > 性能 > CPU > 是否显示'虚拟化:已启用'

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

Docker Desktop 无法启动

  • 解决方法
    • 重新安装 WSL 2 内核
    • 重置 WSL 2
wsl --shutdown

Docker 镜像拉取失败

  • 解决方法

修改 DNS 设置

{
 "dns": ["8.8.8.8", "114.114.114.114"]
}

配置镜像加速器

{
 "registry-mirrors": ["https://docker.m.daocloud.io","https://hub-mirror.c.163.com"]
}

目录

  1. Docker 简介
  2. 核心特点
  3. 主要应用场景
  4. 优势
  5. Linux 环境部署
  6. 安装前准备
  7. 系统要求检查
  8. Ubuntu - 检查内核版本(需 3.10+)
  9. 检查系统版本
  10. 输出示例:Ubuntu 22.04 LTS
  11. CentOS - 检查内核版本(需 3.10+)
  12. 输出示例:3.10.0-1160.el7.x86_64
  13. 检查系统版本
  14. 输出示例:CentOS Linux release 7.9.2009 (Core)
  15. 卸载旧版本 Docker
  16. Ubuntu
  17. CentOS
  18. 安装基础依赖
  19. Ubuntu
  20. CentOS
  21. Docker 安装流程
  22. 配置国内镜像源(阿里云)
  23. Ubuntu
  24. 添加阿里云 GPG 密钥
  25. 设置仓库
  26. Ubuntu 更新 APT 缓存
  27. CentOS
  28. 设置阿里云 Docker 仓库
  29. 更新 yum 缓存
  30. 安装 Docker 引擎
  31. Ubuntu
  32. CentOS
  33. 安装最新版本
  34. 启动 Docker 服务
  35. 启动服务
  36. 设置开机自启
  37. 验证服务状态
  38. 配置镜像加速器
  39. 方案一:临时加速(单次有效)
  40. 通用格式(镜像地址不加 https://)
  41. 使用示例
  42. 方案二:永久配置(推荐)
  43. 创建配置文件目录(已存在可跳过)
  44. 通过命令行生成配置(推荐新手)
  45. 应用配置(必须执行)
  46. 验证配置
  47. 测试基础镜像
  48. 查看已用镜像源
  49. 用户权限配置(免 sudo)
  50. 添加 docker 用户组
  51. 将当前用户加入 docker 组
  52. 激活组权限变更
  53. 验证权限
  54. 内核参数优化 (可选)
  55. 编辑 sysctl 配置文件
  56. 加载配置
  57. 存储驱动配置 (可选)
  58. 检查存储驱动
  59. 推荐输出:overlay2
  60. 配置 Overlay2 存储
  61. 停止 Docker 服务
  62. 备份原有数据
  63. 创建新存储目录
  64. 修改存储驱动配置
  65. 重启服务
  66. 防火墙配置 (可选)
  67. 开放 Docker 端口
  68. 开放 2375 端口(管理端口)
  69. 开放常用应用端口
  70. 重新加载防火墙
  71. Docker 与 Firewalld 集成
  72. 允许 Docker 操作防火墙
  73. 故障排查指南
  74. 常见问题解决方案
  75. 问题 1:容器无法访问外网
  76. 解决方案
  77. 问题 2:存储空间不足
  78. 查看 Docker 磁盘使用
  79. 清理无用资源
  80. 问题 3:镜像拉取失败
  81. DNS
  82. 检查 DNS 配置
  83. 如果 DNS 没有配置,执行下面指令添加
  84. 镜像源
  85. 临时使用其他镜像源 或者直接配置永久源,参照上面的 2.4.2 方案二:永久配置
  86. 日志分析命令
  87. 查看 Docker 服务日志
  88. 查看容器日志
  89. Windows 环境部署
  90. 安装前的准备工作
  91. 下载和安装 (Docker Desktop)
  92. 下载
  93. 安装
  94. 验证安装
  95. 配置 Docker
  96. 配置镜像加速器(推荐)
  97. 配置 WSL 2 集成
  98. 常见问题与解决方案
  99. 虚拟化未开启
  100. Hyper-V 冲突
  101. Docker Desktop 无法启动
  102. Docker 镜像拉取失败
  • 💰 8折买阿里云服务器限时8折了解详情
  • Magick API 一键接入全球大模型注册送1000万token查看
  • 🤖 一键搭建Deepseek满血版了解详情
  • 一键打造专属AI 智能体了解详情
极客日志微信公众号二维码

微信扫一扫,关注极客日志

微信公众号「极客日志V2」,在微信中扫描左侧二维码关注。展示文案:极客日志V2 zeeklog

更多推荐文章

查看全部
  • Java 设计模式实战:23 种模式源码解析与现代应用
  • Python 纯函数编程:从理念到实战
  • 快速迭代收缩阈值算法 FISTA 原理与实现
  • MyBatis 动态 SQL 标签详解
  • LLM(大语言模型)到底是怎么工作的?
  • IDEA 与 VSCode Git 标准操作规范:更新、提交、分支及标签管理
  • Android 高级工程师面试核心知识点与高频题库解析
  • 大语言模型在审计工作中的应用场景
  • 荣耀发布 Robot Phone 与人形机器人,构建 AI 硬件生态
  • OpenClaw 本地部署与飞书机器人接入实战指南
  • C++ 精灵库相对运动动画演示:葫芦娃飞向太空
  • 三年销售助理转行软件测试工程师的求职经历与心得
  • Linux 进程池实现:基于管道的任务分发系统
  • ToDesk、顺网云与海马云部署 DeepSeek 模型对比评测
  • 50 道前端中高级核心面试题:HTML CSS JS Vue React TS 工程化与网络
  • Spring AOP 核心原理与实战指南
  • Stable Diffusion 大模型基础:版本对比与资源推荐
  • 宇树 G1 机器人强化学习训练配置与奖励函数解析
  • 大模型开发环境搭建:Python 与 PyCharm 安装指南
  • MySQL 运维实战:常见问题排查与解决方案

相关免费在线工具

  • Base64 字符串编码/解码

    将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online

  • Base64 文件转换器

    将字符串、文件或图像转换为其 Base64 表示形式。 在线工具,Base64 文件转换器在线工具,online

  • Markdown转HTML

    将 Markdown(GFM)转为 HTML 片段,浏览器内 marked 解析;与 HTML转Markdown 互为补充。 在线工具,Markdown转HTML在线工具,online

  • HTML转Markdown

    将 HTML 片段转为 GitHub Flavored Markdown,支持标题、列表、链接、代码块与表格等;浏览器内处理,可链接预填。 在线工具,HTML转Markdown在线工具,online

  • JSON 压缩

    通过删除不必要的空白来缩小和压缩JSON。 在线工具,JSON 压缩在线工具,online

  • JSON美化和格式化

    将JSON字符串修饰为友好的可读格式。 在线工具,JSON美化和格式化在线工具,online