第四节 Windows 系统 Docker 安装全指南
mhr18 2025-06-29 17:54 3 浏览 0 评论
一、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
- 删除桌面快捷方式及环境变量
相关推荐
- 如何检查 Linux 服务器是物理服务器还是虚拟服务器?
-
在企业级运维、故障排查和性能调优过程中,准确了解服务器的运行环境至关重要。无论是物理机还是虚拟机,都存在各自的优势与限制。在很多场景下,尤其是当你继承一台服务器而不清楚底层硬件细节时,如何快速辨识它是...
- 第四节 Windows 系统 Docker 安装全指南
-
一、Docker在Windows上的运行原理(一)架构限制说明Docker本质上依赖Linux内核特性(如Namespaces、Cgroups等),因此在Windows系统上无法直...
- C++ std:shared_ptr自定义allocator引入内存池
-
当C++项目里做了大量的动态内存分配与释放,可能会导致内存碎片,使系统性能降低。当动态内存分配的开销变得不容忽视时,一种解决办法是一次从操作系统分配一块大的静态内存作为内存池进行手动管理,堆对象内存分...
- Activiti 8.0.0 发布,业务流程管理与工作流系统
-
Activiti8.0.0现已发布。Activiti是一个业务流程管理(BPM)和工作流系统,适用于开发人员和系统管理员。其核心是超快速、稳定的BPMN2流程引擎。Activiti可以...
- MyBatis动态SQL的5种高级玩法,90%的人只用过3种
-
MyBatis动态SQL在日常开发中频繁使用,但大多数开发者仅掌握基础标签。本文将介绍五种高阶技巧,助你解锁更灵活的SQL控制能力。一、智能修剪(Trim标签)应用场景:动态处理字段更新,替代<...
- Springboot数据访问(整合Mybatis Plus)
-
Springboot整合MybatisPlus1、创建数据表2、引入maven依赖mybatis-plus-boot-starter主要引入这个依赖,其他相关的依赖在这里就不写了。3、项目结构目录h...
- 盘点金州勇士在奥克兰13年的13大球星 满满的全是...
-
见证了两个月前勇士与猛龙那个史诗般的系列赛后,甲骨文球馆正式成为了历史。那个大大的红色标志被一个字母一个字母地移除,在周四,一切都成为了过去式。然而这座,别名为“Roaracle”(译注:Roar怒吼...
- Mybatis入门看这一篇就够了(mybatis快速入门)
-
什么是MyBatisMyBatis本是apache的一个开源项目iBatis,2010年这个项目由apachesoftwarefoundation迁移到了googlecode,并且改名为M...
- Springboot数据访问(整合druid数据源)
-
Springboot整合druid数据源基本概念SpringBoot默认的数据源是:2.0之前:org.apache.tomcat.jdbc.pool.DataSource2.0及之后:com.z...
- Linux 中的 "/etc/profile.d" 目录有什么作用 ?
-
什么是/etc/profile.d/目录?/etc/profile.d/目录是Linux系统不可或缺的一部分保留配置脚本。它与/etc/profile文件相关联,这是一个启动脚本,该脚...
- 企业数据库安全管理规范(企业数据库安全管理规范最新版)
-
1.目的为规范数据库系统安全使用活动,降低因使用不当而带来的安全风险,保障数据库系统及相关应用系统的安全,特制定本数据库安全管理规范。2.适用范围本规范中所定义的数据管理内容,特指存放在信息系统数据库...
- Oracle 伪列!这些隐藏用法你都知道吗?
-
在Oracle数据库中,有几位特殊的“成员”——伪列,它们虽然不是表中真实存在的物理列,但却能在数据查询、处理过程中发挥出意想不到的强大作用。今天给大家分享Oracle伪列的使用技巧,无论...
- Oracle 高效处理数据的隐藏神器:临时表妙用
-
各位数据库搬砖人,在Oracle的代码世界里闯荡,处理复杂业务时,是不是总被数据“搅得头大”?今天给大家安利一个超实用的隐藏神器——临时表!当你需要临时存储中间计算结果,又不想污染正式数据表...
- Oracle 数据库查询:多表查询(oracle多表关联查询)
-
一、多表查询基础1.JOIN操作-INNERJOIN:返回两个表中满足连接条件的匹配行,不保留未匹配数据。SELECTa.emp_id,b.dept_nameFROMempl...
- 一文掌握怎么利用Shell+Python实现多数据源的异地备份程序
-
简介:在信息化时代,数据安全和业务连续性已成为企业和个人用户关注的焦点。无论是网站数据、数据库、日志文件,还是用户上传的文档、图片等,数据一旦丢失,损失难以估量。尤其是当数据分布在多个不同的目录、服务...
你 发表评论:
欢迎- 一周热门
- 最近发表
-
- 如何检查 Linux 服务器是物理服务器还是虚拟服务器?
- 第四节 Windows 系统 Docker 安装全指南
- C++ std:shared_ptr自定义allocator引入内存池
- Activiti 8.0.0 发布,业务流程管理与工作流系统
- MyBatis动态SQL的5种高级玩法,90%的人只用过3种
- Springboot数据访问(整合Mybatis Plus)
- 盘点金州勇士在奥克兰13年的13大球星 满满的全是...
- Mybatis入门看这一篇就够了(mybatis快速入门)
- Springboot数据访问(整合druid数据源)
- Linux 中的 "/etc/profile.d" 目录有什么作用 ?
- 标签列表
-
- oracle位图索引 (74)
- oracle基目录 (50)
- oracle批量插入数据 (65)
- oracle事务隔离级别 (53)
- oracle主从同步 (55)
- oracle 乐观锁 (51)
- redis 命令 (78)
- php redis (88)
- redis 存储 (66)
- redis 锁 (69)
- 启动 redis (66)
- redis 时间 (56)
- redis 删除 (67)
- redis内存 (57)
- redis并发 (52)
- redis 主从 (69)
- redis 订阅 (51)
- redis 登录 (54)
- redis 面试 (58)
- 阿里 redis (59)
- redis 搭建 (53)
- redis的缓存 (55)
- lua redis (58)
- redis 连接池 (61)
- redis 限流 (51)