Windows下开发环境镜像与配置-docker
Windows 下 Docker + Kubernetes 的安装、镜像源与缓存目录配置指南
1. Docker 安装(推荐方式)
-
直接访问 Docker Desktop 官网 下载最新 Windows Installer(推荐稳定版,支持 WSL 2 后端)。
-
环境变量配置(避免 C 盘臃肿,推荐): 右键 “此电脑” → 属性 → 高级系统设置 → 环境变量,新增用户变量:
-
DOCKER_CONFIG:D:\runenv\rundev\docker\config -
MINIKUBE_HOME:D:\runenv\rundev\docker\minikube -
安装时可以自定义安装目录(避免默认 C 盘),例如
D:\runenv\rundev\docker。
Start-Process "Docker Desktop Installer.exe" -Wait -ArgumentList "install", "-accept-license", "--installation-dir=D:\runenv\rundev\docker\docker", "--wsl-default-data-root=D:\runenv\rundev\docker\docker-data", "--windows-containers-default-data-root=D:\runenv\rundev\docker\docker-image"
# https://docs.docker.com/desktop/setup/install/windows-install/#installer-flags
# --installation-dir: Where Docker Desktop’s binaries and related files go.
# --wsl-default-data-root: WSL2’s storage location for Docker data.
# --windows-containers-default-data-root: Where Docker stores data for Windows containers.
-
安装完成后启用 WSL 2(系统会自动提示),并在设置中选择 WSL 2 作为默认后端。
-
安装完成后验证(开启新的Terminal):
powershell
docker --version
docker compose version
Kubernetes 本地集成:
- Docker Desktop 内置 Kubernetes 支持,可在设置中直接启用。
推荐替代工具(轻量选择):
- Podman Desktop:免费、无守护进程、rootless 模式(https://podman-desktop.io/)。
powershell
winget install RedHat.Podman-Desktop
2. Kubernetes 安装(本地开发推荐)
首选方案:
-
Docker Desktop 内置 K8s:安装 Docker 后,在 Docker Desktop 设置 → Kubernetes → 勾选 “Enable Kubernetes” 并应用。
-
Minikube(功能更完整,强烈推荐):
powershell
winget install Kubernetes.minikube
minikube start --driver=docker
- kind(轻量快速,适合测试):
powershell
winget install kind
kind create cluster
K3s 安装(轻量生产级补充方案): K3s 是极致轻量的 Kubernetes 发行版,在 Windows 上主要通过 WSL2 运行(推荐 Ubuntu 发行版)。
安装步骤(在 WSL2 内执行):
- 启用 WSL2 并开启 systemd(必须):
powershell
# PowerShell(管理员)
wsl --install
wsl --set-default-version 2
在 WSL 内编辑 /etc/wsl.conf:
ini
[boot]
systemd=true
重启 WSL:wsl --shutdown
- 在 WSL Ubuntu 中安装 K3s:
```bash # 更新系统 sudo apt update && sudo apt upgrade -y
# 安装 K3s(单节点) curl -sfL https://get.k3s.io | sh -
# 或指定版本/国内加速 curl -sfL https://rancher-mirror.rancher.cn/k3s/k3s-install.sh | INSTALL_K3S_MIRROR=cn sh - ```
- 验证:
bash
sudo k3s kubectl get nodes
sudo k3s kubectl get pods -A
从 Windows 访问 K3s:
# 复制 kubeconfig 到 Windows
mkdir %USERPROFILE%\.kube
wsl -u root cat /etc/rancher/k3s/k3s.yaml > %USERPROFILE%\.kube\config
# 编辑 config 文件,将 server: https://127.0.0.1:6443 改为 WSL IP
Podman 搭配 K3s:可使用 Podman 作为容器运行时(实验性)。
验证:
kubectl version --client
k3s --version
3. 国内镜像源配置(强烈推荐,解决下载慢问题)
Docker 镜像加速(推荐阿里云、腾讯云):
全局配置(推荐):
- 在 Docker Desktop 设置 → Docker Engine,编辑
daemon.json:
json
{
"registry-mirrors": [
"https://registry.docker-cn.com",
"https://mirror.ccs.tencentyun.com",
"https://docker.mirrors.sjtug.sjtu.edu.cn",
"https://cr.console.aliyun.com"
]
}
- 重启 Docker Desktop。
K3s 镜像加速(通过 registries.yaml):
在 WSL 内创建 /etc/rancher/k3s/registries.yaml:
yaml
mirrors:
docker.io:
endpoint:
- "https://registry.docker-cn.com"
- "https://mirror.ccs.tencentyun.com"
registry.k8s.io:
endpoint:
- "https://registry.aliyuncs.com"
Kubernetes / Minikube 镜像加速:
minikube start --registry-mirror=https://registry.cn-hangzhou.aliyuncs.com --driver=docker
临时使用:
docker pull nginx --registry-mirror=https://mirror.ccs.tencentyun.com
4. 缓存目录配置
Docker 默认缓存/镜像位置(Windows WSL2):
- 虚拟磁盘:
%LOCALAPPDATA%\Docker\wsl\data\ext4.vhdx(最占空间) - 镜像层缓存:WSL 内部
/var/lib/docker
K3s 缓存目录(containerd 管理):
- 默认位置(WSL 内):
/var/lib/rancher/k3s/agent/containerd/
修改缓存目录方法(推荐移到非系统盘):
Docker Desktop(最简单):
- 设置 → Resources → Advanced → Disk image location → 改为
D:\runenv\rundev\docker\data
K3s 自定义存储: 在安装时指定数据目录:
curl -sfL https://get.k3s.io | INSTALL_K3S_DATA_DIR=/mnt/d/runenv/rundev/k3s sh -
或修改 /etc/systemd/system/k3s.service 中的 --data-dir 参数。
Minikube 缓存配置:
minikube config set cache dir D:\runenv\rundev\minikube\cache
查看与清理缓存:
docker system df
docker builder prune -a --force
docker system prune -a --volumes --force
sudo k3s kubectl get pods -A # 检查 K3s 资源
# K3s 清理
sudo k3s crictl rmi --prune
5. 常用实用命令
# 拉取镜像
docker pull nginx
# 运行容器
docker run -d -p 8080:80 nginx
# Docker Compose
docker compose up -d
# Kubernetes 相关
kubectl get pods
minikube dashboard
k3s kubectl get nodes
# K3s 管理
sudo k3s stop
sudo k3s start
# 构建镜像
docker build -t myapp:local .
6. 常见问题解决
- 权限问题:用管理员 PowerShell 执行安装和启动命令;K3s 在 WSL 内用 sudo。
- 缓存占用大:定期执行 prune 清理,或将数据目录迁移到 D 盘大容量分区。
- 下载慢/失败:配置多个国内 registry-mirrors 并重启 Docker/K3s。
- WSL 资源不足:在 Docker 设置中增加 CPU/内存分配,或调整
.wslconfig。 - Docker 与其他工具冲突:优先选择 Docker Desktop + Minikube/K3s 组合,或 Podman Desktop + Minikube,避免同时长期运行多个容器引擎。
- K3s 启动失败:确认 systemd 已启用,检查
/var/lib/rancher/k3s权限与磁盘空间。 - kubeconfig 访问:确保 Windows 与 WSL 的 kubeconfig server 地址使用正确的 WSL IP。
配置完成后,容器和镜像的拉取速度会显著提升,强烈建议在 Windows 上根据需求选择以下组合:
- 主流推荐:Docker Desktop + Minikube(最佳集成体验)
- 轻量推荐:Docker Desktop + K3s(WSL2 内,资源占用最低,接近生产环境)
- 轻量安全推荐:Podman Desktop + Minikube