在WSL中安装Docker的两种方法步骤

 更新时间:2025年12月26日 10:01:28   作者:好奇的菜鸟  
Docker是一种开源的容器化平台,用于构建、交付和运行应用程序,它提供了一种轻量级的容器化技术,可以将应用程序及其依赖项打包成一个独立的可执行单元,这篇文章主要介绍了在WSL中安装Docker的两种方法步骤,需要的朋友可以参考下

前言 

为现代开发环境打造高效的容器化工作流

作为现代开发者的核心工具,Docker 与 WSL 的结合为 Windows 用户提供了接近原生 Linux 的开发体验。本文将详细介绍两种在 WSL 中安装 Docker 的方法,帮助你选择最适合自己需求的方案。

方法一:Docker Desktop + WSL 2 后端(推荐方案)

这是目前官方推荐且最高效的安装方式,充分利用了 WSL 2 的架构优势。

核心优势

  • 卓越性能:基于 WSL 2 的完整系统调用兼容性,文件 I/O 性能大幅提升
  • 无缝集成:单一 Docker 守护进程同时服务于 Windows 和 WSL 环境
  • 简化管理:通过 Docker Desktop 图形界面统一管理容器、镜像和设置
  • 跨环境支持:在 WSL 终端和 Windows PowerShell 中均可使用 Docker 命令

环境准备

确保系统满足以下要求:

  1. 操作系统:Windows 10 版本 2004(Build 19041)或更高版本,或 Windows 11
  2. 启用 WSL 2 功能:以管理员身份运行 PowerShell:
# 一键安装(推荐,适用于最新版 Windows)
wsl --install

# 或手动启用必要功能
dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart

# 重启后设置 WSL 2 为默认版本
wsl --set-default-version 2

详细安装步骤

1. 下载 Docker Desktop

访问 https://www.docker.com/products/docker-desktop/ 下载 Windows 版安装程序。

2. 安装过程中的关键配置

运行安装程序时,务必勾选 “Use WSL 2 instead of Hyper-V” 选项,这是实现高效集成的核心设置。

3. 安装后配置

  • 安装完成后重启计算机
  • 首次启动 Docker Desktop 时,进入 Settings → General
  • 确认 “Use the WSL 2 based engine” 选项已启用
  • 在 Settings → Resources → WSL Integration 中,确保你的 WSL 发行版已开启集成

4. 验证安装

打开 WSL 发行版(如 Ubuntu),执行以下命令验证:

# 检查版本
docker --version
docker-compose --version

# 运行测试容器
docker run --rm hello-world

# 更全面的系统检查
docker info

故障排除

如果遇到 WSL 2 集成问题,可尝试以下命令:

# 检查 WSL 状态
wsl --status

# 确保发行版使用 WSL 2
wsl --list --verbose

# 如果版本不对,进行转换
wsl --set-version Ubuntu 2

方法二:在 WSL 发行版内直接安装 Docker Engine

这种传统方法将 Docker 直接安装在 WSL 的 Linux 环境中,适合有特殊需求的用户。

适用场景

  • 需要在纯命令行环境下工作
  • 希望完全控制 Docker 守护进程
  • 环境限制无法安装 Docker Desktop
  • 学习 Linux 系统管理的练习环境

Ubuntu/Debian 发行版安装步骤

1. 更新系统并安装依赖

sudo apt update
sudo apt upgrade -y

# 安装必要工具
sudo apt install apt-transport-https ca-certificates curl gnupg lsb-release -y

2. 添加 Docker 官方仓库

# 创建密钥环目录
sudo install -m 0755 -d /etc/apt/keyrings

# 下载并安装 Docker 的 GPG 密钥
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
sudo chmod a+r /etc/apt/keyrings/docker.gpg

# 添加稳定版仓库
echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

3. 安装 Docker Engine

# 更新仓库信息
sudo apt update

# 安装 Docker
sudo apt install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin -y

4. 配置用户权限和服务

# 启动 Docker 服务
sudo systemctl start docker
sudo systemctl enable docker

# 将当前用户加入 docker 组
sudo usermod -aG docker $USER

# 重要:重新登录使组权限生效
newgrp docker

# 验证安装
docker run --rm hello-world

针对 WSL 的特殊优化

在 WSL 环境中直接运行 Docker 时,建议进行以下优化配置:

1. 配置 Docker 守护进程启动选项

# 编辑 Docker 配置文件
sudo nano /etc/docker/daemon.json

添加以下内容以优化 WSL 环境下的性能:

{
  "log-driver": "json-file",
  "log-opts": {
    "max-size": "10m",
    "max-file": "3"
  },
  "data-root": "/home/docker-data"
}

2. 设置 Docker 服务自动启动

由于 WSL 的特殊性,需要确保 Docker 服务正确启动:

# 创建启动脚本
sudo nano /etc/wsl.conf

添加以下内容:

[boot]
command = "service docker start"

方案对比与选择建议

特性Docker Desktop + WSL 2WSL 内直接安装
安装难度⭐⭐⭐⭐⭐ (非常简单)⭐⭐⭐ (需要命令行经验)
性能表现⭐⭐⭐⭐⭐ (最优)⭐⭐⭐⭐ (良好)
资源占用⭐⭐⭐⭐ (共享守护进程)⭐⭐⭐ (独立守护进程)
维护成本⭐⭐⭐⭐⭐ (自动更新)⭐⭐⭐ (手动维护)
功能完整性⭐⭐⭐⭐⭐ (全功能支持)⭐⭐⭐⭐ (核心功能)
学习价值⭐⭐⭐ (抽象程度高)⭐⭐⭐⭐⭐ (深入理解)

选择建议

选择 Docker Desktop + WSL 2 如果:

  • 你是 Docker 初学者或追求开发效率
  • 希望获得开箱即用的完整体验
  • 需要在 Windows 和 WSL 环境间无缝切换
  • 看重图形化界面和便捷的更新机制

选择 WSL 内直接安装如果:

  • 你是 Linux 系统管理员或 DevOps 工程师
  • 需要完全控制 Docker 守护进程的配置
  • 环境限制无法安装 Docker Desktop
  • 希望通过实践深入学习 Docker 和 Linux 系统管理

最佳实践与优化技巧

1. 磁盘空间管理

Docker 镜像和容器可能占用大量磁盘空间,定期清理:

# 清理无用资源
docker system prune -a --volumes

# 查看磁盘使用情况
docker system df

2. 项目文件存储位置

将项目文件存储在 WSL 文件系统内(如 /home/username/projects)而非 Windows 文件系统(如 /mnt/c/),以获得更好的性能。

3. 开发环境配置

使用 Docker Compose 管理多容器应用,创建 docker-compose.yml 文件:

version: '3.8'
services:
  web:
    image: nginx:alpine
    ports:
      - "80:80"
    volumes:
      - ./html:/usr/share/nginx/html
  db:
    image: postgres:13
    environment:
      POSTGRES_DB: myapp
      POSTGRES_USER: developer
      POSTGRES_PASSWORD: password

结语

无论选择哪种安装方式,WSL 与 Docker 的组合都为 Windows 开发者提供了强大的开发环境。对于大多数用户,我们强烈推荐方法一(Docker Desktop + WSL 2),它代表了容器化开发在 Windows 平台上的最佳实践。

选择适合自己工作流程的方案,开始享受高效、一致的容器化开发体验吧!

到此这篇关于在WSL中安装Docker的两种方法步骤的文章就介绍到这了,更多相关WSL安装Docker内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • docker compose运行微服务项目的方法

    docker compose运行微服务项目的方法

    这篇文章主要介绍了docker compose运行微服务项目 ,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-08-08
  • Docker部署SQL Server 2019 Always On集群的实现

    Docker部署SQL Server 2019 Always On集群的实现

    这篇文章主要介绍了Docker部署SQL Server 2019 Always On集群的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-04-04
  • Docker实现发布一个springboot项目

    Docker实现发布一个springboot项目

    文章介绍了使用Docker打包SpringBoot项目的过程,包括基本用法、maven源码打包法、使用maven插件打包和docker-maven-plugin插件打包,并详细讲述了每种方法的操作步骤和配置细节,最后总结了使用插件打包的优势
    2026-04-04
  • docker 使用CMD或者ENTRYPOINT命令同时启动多个服务

    docker 使用CMD或者ENTRYPOINT命令同时启动多个服务

    这篇文章主要介绍了docker 使用CMD或者ENTRYPOINT命令同时启动多个服务,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-11-11
  • 使用 docker部署tomcat并接入skywalking的使用

    使用 docker部署tomcat并接入skywalking的使用

    这里主要介绍了使用 docker 部署 tomact 并接入 skywalking 的使用,因为在网上并没有查到太多相关的信息,所以这里记录下来,需要对有需求的小伙伴提供一些帮助
    2021-04-04
  • Docker Kill/Pause/Unpause命令使用与区别小结

    Docker Kill/Pause/Unpause命令使用与区别小结

    本文详细介绍了Docker中的三个重要命令,kill、pause和unpause,这些命令在管理和操作运行中的容器时非常有用,具有一定的参考价值,感兴趣的可以了解一下
    2024-03-03
  • docker容器中创建非root用户的操作方法

    docker容器中创建非root用户的操作方法

    用户分享在Docker容器中创建非root用户nuser并配置权限的实践,通过设置密码、修改sudoers文件实现安全运行,避免使用root用户操作,适用于部署Stable Diffusion WebUI等场景,本文给大家介绍docker容器中创建非root用户的操作,感兴趣的朋友一起看看吧
    2025-06-06
  • 安装Milvus向量数据库全过程

    安装Milvus向量数据库全过程

    这篇文章主要介绍了安装Milvus向量数据库全过程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2025-08-08
  • 使用Docker实现MySQL容器中批量导出所有数据库

    使用Docker实现MySQL容器中批量导出所有数据库

    在使用 Docker 部署 MySQL 的场景中,经常会需要一次性导出容器内除系统库以外的所有数据库,下面小编就和大家介绍一下具体实现方法,有需要的小伙伴可以了解下
    2025-12-12
  • 手把手教你如何用NAS+Docker搭建WordPress网站

    手把手教你如何用NAS+Docker搭建WordPress网站

    NAS能做的不仅仅是储存,它还能作为一台简单的服务器,完成一些相对简单的工作,这篇文章主要介绍了如何用NAS+Docker搭建WordPress网站的相关资料,需要的朋友可以参考下
    2025-12-12

最新评论