> 技术文档 > 2025最新 Docker (WSL 2)部署 PostgreSQL 和 Redis数据库(超详细)

2025最新 Docker (WSL 2)部署 PostgreSQL 和 Redis数据库(超详细)


目录

      • 一、启用 WSL 2
      • 二、优化WSL2性能
      • 三、下载安装 Docker Desktop
      • 四、启动 Docker Desktop
      • 五、部署 PostgreSQL & Redis
        • 方法一:docker run
        • 方法二:docker-compose.yml(Docker Compose )
        • 验证容器运行状态
        • (两种方法功能对比)
      • 六、连接数据库
        • PostgreSQL
        • Redis
      • 七、其他常用命令
        • docker常用管理命令
        • 常用 Compose 命令

一、启用 WSL 2

1: 启用 WSL 功能

以管理员身份打开 PowerShell 并运行:

dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart

2025最新 Docker (WSL 2)部署 PostgreSQL 和 Redis数据库(超详细)
2: 启用虚拟机平台功能

dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart

2025最新 Docker (WSL 2)部署 PostgreSQL 和 Redis数据库(超详细)
3: 重启计算机

Restart-Computer

4: 下载并安装 Linux 发行版

  • 下载 Ubuntu .tar.gz 包:Ubuntu WSL 镜像
    2025最新 Docker (WSL 2)部署 PostgreSQL 和 Redis数据库(超详细)
  • 导入 .tar.gz 作为 WSL 分发
wsl --import Ubuntu F:\\WSL\\Ubuntu\\ F:\\Ubuntu\\ubuntu-jammy-wsl-amd64-ubuntu22.04lts.rootfs.tar.gz
  • Ubuntu:分发名称(可自定义)
  • F:\\WSL\\Ubuntu\\:自定义存储 WSL 文件的目录
  • F:\\Ubuntu\\ubuntu-jammy-wsl-amd64-ubuntu22.04lts.rootfs.tar.gz:下载的 tar 包路径

2025最新 Docker (WSL 2)部署 PostgreSQL 和 Redis数据库(超详细)
5: 设置默认 WSL 版本

wsl --set-default-version 2

2025最新 Docker (WSL 2)部署 PostgreSQL 和 Redis数据库(超详细)


二、优化WSL2性能

要优化 WSL 2 的性能,可以通过创建 .wslconfig 文件来调整内存、CPU 核数、交换空间等配置。

1. 创建 .wslconfig 文件

  • 进入用户目录:

    C:\\Users\\\\
  • 新建一个文本文件,命名为 .wslconfig(注意前面的 . 是文件名的一部分)。

  • 粘贴以下配置(按需调整):

[wsl2]memory=12GB # 限制 WSL 2 最大内存使用量(默认 80% 物理内存)processors=10 # 分配 CPU 核心数(默认全部)swap=0 # 禁用交换空间(默认 25% 内存大小)localhostForwarding=true # 允许 localhost 访问 WSL 服务nestedVirtualization=true # 允许 WSL 2 内运行虚拟机(如 Docker)

参数说明

  • memory:建议不超过物理内存的 60%
  • processors:建议不超过 CPU 物理核心数(如 12 核 CPU 可设 10)。
  • swap=0:禁用交换文件提升性能(但可能增加 OOM 风险)。
  • nestedVirtualization:如果要在 WSL 2 内运行 Docker/KVM 需启用。
  • 保存文件(确保文件名是 .wslconfig,不是 .wslconfig.txt)。

2. 应用配置

  • 关闭所有 WSL 实例
wsl --shutdown
  • 重新启动 Ubuntu
wsl -d Ubuntu

2025最新 Docker (WSL 2)部署 PostgreSQL 和 Redis数据库(超详细)
3. 验证配置是否生效
进入 WSL 2 后运行:

free -h # 查看内存nproc # 查看 CPU 核心数

2025最新 Docker (WSL 2)部署 PostgreSQL 和 Redis数据库(超详细)


三、下载安装 Docker Desktop

1: 下载
访问 Docker 官方网站 下载
2025最新 Docker (WSL 2)部署 PostgreSQL 和 Redis数据库(超详细)
2:安装 Docker Desktop

  • 勾选 “Use WSL 2 instead of Hyper-V”(WSL 2 性能更好)。
  • 大多数(尤其是开发 Linux 应用)都不用勾选(默认 Linux 容器足够,这样资源占用更低),如需运行的应用依赖 Windows 内核( IIS 或 .NET Framework)则必须勾选
    • 如果安装时未勾选但后续需要 Windows 容器:打开 Docker Desktop → 右键任务栏 Docker 图标 → “Switch to Windows Containers” → Docker 会自动下载所需组件。
  • 勾选 “Add shortcut to desktop”(创建桌面快捷方式)。

2025最新 Docker (WSL 2)部署 PostgreSQL 和 Redis数据库(超详细)
3. 点击 “OK”,等待安装完成。
2025最新 Docker (WSL 2)部署 PostgreSQL 和 Redis数据库(超详细)


四、启动 Docker Desktop

  • 首次启动时会提示接受服务条款,点击 Accept
  • 配置加速地址:Settings → Docker Engine 配置 → 在 JSON 配置中添加下面内容
{ \"registry-mirrors\": [ \"https://do.nark.eu.org\", \"https://dc.j8.work\", \"https://docker.m.daocloud.io\", \"https://dockerproxy.com\", \"https://docker.mirrors.ustc.edu.cn\", \"https://docker.nju.edu.cn\" ]}

2025最新 Docker (WSL 2)部署 PostgreSQL 和 Redis数据库(超详细)

  • 验证 Docker 是否正常运行
  1. 打开 PowerShell命令提示符(CMD)
  2. 运行以下命令:
docker --version

2025最新 Docker (WSL 2)部署 PostgreSQL 和 Redis数据库(超详细)

docker run hello-world

2025最新 Docker (WSL 2)部署 PostgreSQL 和 Redis数据库(超详细)
看到 Hello from Docker!,说明 Docker 可以正常拉取和运行容器。


五、部署 PostgreSQL & Redis

方法一:docker run

如果加载比较慢的话可以按照之前的方法去加一下镜像源:https://9cpn8tt6.mirror.aliyuncs.com

PostgreSQL

拉取镜像并运行容器:

docker run --name postgres -e POSTGRES_PASSWORD=mypassword -e POSTGRES_USER=myuser -e POSTGRES_DB=mydb -p 5432:5432 -v pgdata:/var/lib/postgresql/data -d postgres:latest

2025最新 Docker (WSL 2)部署 PostgreSQL 和 Redis数据库(超详细)

参数说明:

  • -e POSTGRES_PASSWORD: 设置超级用户密码(必填)。
  • -e POSTGRES_USER: 可选自定义用户名(默认 postgres)。
  • -e POSTGRES_DB: 可选初始数据库名(默认与用户名相同)。
  • -p 5432:5432: 主机端口映射到容器端口。
  • -v pgdata:/var/lib/postgresql/data: 数据卷持久化存储。
  • -d:后台运行容器
  • postgres:latest:使用的镜像(默认拉取最新版)

Redis

拉取镜像并运行容器:

docker run --name redis -p 6379:6379 -v redisdata:/data -d redis:latest redis-server --save 60 1 --loglevel warning

2025最新 Docker (WSL 2)部署 PostgreSQL 和 Redis数据库(超详细)

参数说明:

  • -v redisdata:/data: 数据卷持久化存储。
  • -p 6379:6379: 主机端口映射到容器端口。
  • --save 60 1: 每60秒若至少1次写入则触发快照。
  • --loglevel warning: 设置日志级别。
方法二:docker-compose.yml(Docker Compose )
  1. 在PowerShell中导航到目标目录
    2025最新 Docker (WSL 2)部署 PostgreSQL 和 Redis数据库(超详细)

创建 docker-compose.yml 文件:

@\"version: \'3\'services: postgres: image: postgres:latest environment: POSTGRES_PASSWORD: mypassword POSTGRES_USER: myuser POSTGRES_DB: mydb ports: - \"5432:5432\" volumes: - pgdata:/var/lib/postgresql/data redis: image: redis:latest command: redis-server --save 60 1 --loglevel warning ports: - \"6379:6379\" volumes: - redisdata:/datavolumes: pgdata: redisdata:\"@ | Out-File -Encoding utf8 docker-compose.yml

2025最新 Docker (WSL 2)部署 PostgreSQL 和 Redis数据库(超详细)

验证:

cat docker-compose.yml

2025最新 Docker (WSL 2)部署 PostgreSQL 和 Redis数据库(超详细)

运行:

docker-compose up -d

2025最新 Docker (WSL 2)部署 PostgreSQL 和 Redis数据库(超详细)

验证容器运行状态
docker ps

2025最新 Docker (WSL 2)部署 PostgreSQL 和 Redis数据库(超详细)

(两种方法功能对比)
方式 docker run 命令 docker-compose.yml 文件 镜像拉取 需手动执行 docker pull 或自动拉取 自动拉取缺失的镜像 容器启动 需手动输入长串 docker run 命令 通过 docker-compose up -d 一键启动所有服务 配置管理 参数写在命令行中,易丢失 所有配置集中写入 YAML 文件,可版本控制 多容器协作 需手动管理网络、卷、依赖关系 自动处理容器间的网络、依赖顺序 环境变量 通过 -e 传递,硬编码在命令中 可在 YAML 中定义或引用外部 .env 文件 数据卷/网络 需手动创建和管理 自动创建并在 YAML 中声明式定义

六、连接数据库

PostgreSQL
  • 主机: localhost
  • 端口: 5432
  • 用户名/密码: 根据 -e 参数设置(如 myuser/mysecretpassword)。
  • 使用工具如 pgAdminDBeaver 或命令行 psql 连接。
docker exec -it postgres psql -U myuser -d mydb

2025最新 Docker (WSL 2)部署 PostgreSQL 和 Redis数据库(超详细)

Redis
  • 主机: localhost
  • 端口: 6379
  • 使用 redis-cli 或工具如 RedisInsight 连接:
 docker exec -it redis redis-cli

七、其他常用命令

docker常用管理命令
  • 停止/启动容器
    docker stop postgres redisdocker start postgres redis
  • 查看日志
    docker logs postgresdocker logs redis
  • 删除容器(谨慎操作):
    docker rm -f postgres redisdocker volume rm pgdata redisdata
常用 Compose 命令
命令 作用 docker-compose up -d 启动所有服务(后台运行) docker-compose down 停止并删除所有容器 docker-compose ps 查看运行中的服务 docker-compose logs -f 实时查看日志 docker-compose restart 重启服务