网站首页 > 技术文章 正文
一、Docker 在 Windows 上的运行原理
(一)架构限制说明
Docker 本质上依赖 Linux 内核特性(如 Namespaces、Cgroups 等),因此在 Windows 系统上无法直接运行,需通过以下两种方案构建运行环境:
- 虚拟化方案:在 Windows 中创建 Linux 虚拟机,将 Docker 部署在虚拟机内
- 适配层方案:通过 Docker Desktop 利用 Windows Subsystem for Linux 2(WSL 2)模拟 Linux 环境
(二)不同 Windows 版本的适配方案
Windows 版本 | 推荐安装方式 | 技术特点 |
Windows 10 专业版/企业版/教育版 | Docker Desktop | 基于 Hyper-V 或 WSL 2,体验更原生 |
Windows 10 家庭版(部分) | Docker Desktop | 需开启特定功能支持 |
Windows 7/8/8.1 | Docker Toolbox | 基于 VirtualBox 的传统虚拟化方案 |
二、Windows 10 系统安装 Docker Desktop
(一)前置条件准备
1. 系统要求
- 操作系统:Windows 10 专业版/企业版/教育版(Build 1903 及以上)
- 硬件要求:64 位处理器、至少 4GB 内存、开启虚拟化技术(BIOS 中启用 VT-x/AMD-V)
2. 启用 Hyper-V(传统方式)
图形界面开启:
- 打开「控制面板」→「程序和功能」
- 点击左侧「启用或关闭 Windows 功能」
- 勾选「Hyper-V」及其所有子组件(Hyper-V 管理工具、平台、虚拟机监控程序等)
- 点击「确定」后重启系统
命令行开启(管理员 PowerShell):
Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Hyper-V -All
3. 启用 WSL 2(推荐新方式)
安装步骤:
- 以管理员身份运行 PowerShell,执行:
wsl --install
- 重启系统后完成 WSL 2 安装
- 在 Microsoft Store 中下载并安装 Linux 发行版(如 Ubuntu)
(二)安装 Docker Desktop
1. 下载安装包
- 官方下载地址:https://docs.docker.com/desktop/install/windows-install/
- 国内加速下载:可通过阿里云镜像站获取
2. 执行安装
- 双击安装包,按向导提示操作(建议保持默认设置)
- 安装完成后需注销并重新登录系统使配置生效
3. 验证安装
启动 Docker Desktop:
- 系统托盘出现小鲸鱼图标表示服务正在运行
- 可通过搜索「Docker」手动启动
运行测试命令:
# 查看版本信息
docker version
# 运行测试容器
docker run hello-world
预期输出:
Hello from Docker!
This message shows that your installation appears to be working correctly.
...(详细运行流程说明)
三、Windows 7/8 系统安装 Docker Toolbox
(一)工具集组成
Docker Toolbox 是针对旧版 Windows 的集成方案,包含以下组件:
- Docker CLI:Docker 命令行客户端
- Docker Machine:管理虚拟机中的 Docker 引擎
- Docker Compose:多容器编排工具
- Kitematic:Docker 图形化管理工具
- VirtualBox:轻量级虚拟机软件
- Git for Windows:提供 Linux 命令行环境
(二)下载与安装
1. 获取安装包
- 国内镜像下载:http://mirrors.aliyun.com/docker-toolbox/windows/docker-toolbox/
- 选择最新稳定版本(如 docker-toolbox-18.09.2.exe)
2. 安装过程
- 双击安装包,按向导提示操作
- 组件选择建议:勾选所有组件(VirtualBox、Docker CLI 等)
- 网络设置保持默认,安装路径可自定义
(三)启动与配置
1. 启动 Docker QuickStart
- 安装完成后桌面会生成三个图标:
- Docker QuickStart Terminal:已配置好的 Docker 命令行
- Kitematic (Alpha):图形化管理工具
- Oracle VM VirtualBox:虚拟机管理程序
2. 首次启动配置
- 首次运行会自动创建名为 default 的虚拟机
- 等待命令行显示 $ 提示符,表示 Docker 环境已就绪
3. 验证运行
# 运行测试容器
docker run hello-world
4. 环境变量说明
- 自动设置的关键环境变量:
export DOCKER_TLS_VERIFY=1
export DOCKER_HOST=tcp://192.168.59.103:2376
export DOCKER_CERT_PATH=... # 证书路径
- 所有 Docker 命令通过这些变量与虚拟机中的 Docker 引擎通信
四、常见问题与解决方案
(一)Docker Desktop 启动失败
1. WSL 2 相关错误
- 现象:提示 "WSL 2 is not enabled"
- 解决:
# 启用 WSL 2 功能
dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
# 下载并安装 WSL 2 内核更新包
# 设置 WSL 2 为默认版本
wsl --set-default-version 2
2. Hyper-V 冲突
- 现象:与 VirtualBox/VMware 等虚拟机冲突
- 解决:
- 若需同时使用其他虚拟机,建议卸载 Hyper-V,改用 WSL 2
- 或使用 Docker Toolbox 替代 Docker Desktop
(二)Docker Toolbox 网络问题
1. 镜像拉取缓慢
- 解决:配置国内镜像加速器:
- 打开 VirtualBox 中的 default 虚拟机
- 执行 vi /var/lib/boot2docker/profile
- 添加以下内容:
export DOCKER_OPTS="--registry-mirror=https://docker.mirrors.ustc.edu.cn"
- 重启 Docker 服务:sudo /etc/init.d/docker restart
2. 虚拟机无法联网
- 解决:
- 检查 VirtualBox 网络适配器设置(默认使用 NAT 模式)
- 在 Docker QuickStart 终端中执行 docker-machine regenerate-certs default
五、高级配置与优化
(一)Docker Desktop 资源调整
- 操作步骤:
- 右键点击系统托盘的 Docker 图标
- 选择「Settings」→「Resources」
- 可调整 CPU、内存、磁盘空间分配
- 在「Docker Engine」选项卡中可修改镜像源配置:
{
"registry-mirrors": ["https://docker.mirrors.ustc.edu.cn"]
}
(二)Docker Toolbox 虚拟机管理
1. 查看虚拟机状态
docker-machine ls
2. 进入虚拟机终端
docker-machine ssh default
3. 重置虚拟机
docker-machine reset default
六、卸载 Docker 环境
(一)卸载 Docker Desktop
- 打开「控制面板」→「程序和功能」
- 找到「Docker Desktop」并卸载
- 手动删除残留文件:C:\Program Files\Docker
- 关闭 Hyper-V 或 WSL 2 功能(可选)
(二)卸载 Docker Toolbox
- 打开「控制面板」→「程序和功能」
- 依次卸载 Docker Toolbox、VirtualBox、Git 等组件
- 手动删除虚拟机文件:C:\Users\用户名\.docker 和 C:\Users\用户名\.boot2docker
- 删除桌面快捷方式及环境变量
猜你喜欢
- 2025-07-24 新项目终于用上了jdk24(jdk新建项目)
- 2025-07-24 超详细!虚拟机搭建 OpenWrt 软路由小白入门教程,一看就懂!
- 2024-10-27 oracle数据库环境配置+net manager服务配置
- 2024-10-27 教你如何在Linux下设置每天自动备份Oracle数据库
- 2024-10-27 Oracle 的 JDBC 写入有多慢? oracle19c jdbc
- 2024-10-27 [0519] SQL 50 年 查询前10条数据sql
你 发表评论:
欢迎- 630℃几个Oracle空值处理函数 oracle处理null值的函数
- 623℃Oracle分析函数之Lag和Lead()使用
- 612℃0497-如何将Kerberos的CDH6.1从Oracle JDK 1.8迁移至OpenJDK 1.8
- 606℃Oracle数据库的单、多行函数 oracle执行多个sql语句
- 604℃Oracle 12c PDB迁移(一) oracle迁移到oceanbase
- 596℃【数据统计分析】详解Oracle分组函数之CUBE
- 586℃最佳实践 | 提效 47 倍,制造业生产 Oracle 迁移替换
- 570℃Oracle有哪些常见的函数? oracle中常用的函数
- 最近发表
-
- oracle 19cOCM认证有哪些内容(oracle认证ocm月薪)
- Oracle新出AI课程认证,转型要持续学习
- oracle 表的查询join顺序,可能会影响查询效率
- Oracle DatabaseAmazon Web Services正式可用,Oracle数据库上云更容易了
- Oracle 19.28 RU 升级最佳实践指南
- 汉得信息:发布EBS系统安装启用JWS的高效解决方案
- 如何主导设计一个亿级高并发系统架构-数据存储架构(三)
- Java 后端开发必看!工厂设计模式轻松拿捏
- ORA-00600 「25027」 「x」报错(抱错孩子电视剧 爸爸是武术 另一个爸爸是画家)
- 新项目终于用上了jdk24(jdk新建项目)
- 标签列表
-
- 前端设计模式 (75)
- 前端性能优化 (51)
- 前端模板 (66)
- 前端跨域 (52)
- 前端缓存 (63)
- 前端aes加密 (58)
- 前端脚手架 (56)
- 前端md5加密 (54)
- 前端路由 (61)
- 前端数组 (73)
- 前端js面试题 (50)
- 前端定时器 (59)
- 前端获取当前时间 (50)
- Oracle RAC (76)
- oracle恢复 (77)
- oracle 删除表 (52)
- oracle 用户名 (80)
- oracle 工具 (55)
- oracle 内存 (55)
- oracle 导出表 (62)
- oracle约束 (54)
- oracle 中文 (51)
- oracle链接 (54)
- oracle的函数 (58)
- 前端调试 (52)
本文暂时没有评论,来添加一个吧(●'◡'●)