docker

关注公众号 jb51net

关闭
首页 > 网站技巧 > 服务器 > 云和虚拟化 > docker > Docker部署 PostgreSQL

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

作者:COSMOS_*

这篇文章给大家介绍Docker (WSL 2)部署 PostgreSQL 和 Redis数据库最新超详细教程,本文结合实例图文给大家介绍的非常详细,感兴趣的朋友跟随小编一起看看吧

一、启用 WSL 2

1: 启用 WSL 功能

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

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

2: 启用虚拟机平台功能

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

3: 重启计算机

Restart-Computer

4: 下载并安装 Linux 发行版

下载 Ubuntu .tar.gz 包:Ubuntu 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 包路径

5: 设置默认 WSL 版本

wsl --set-default-version 2

二、优化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)

参数说明

2. 应用配置

wsl --shutdown
wsl -d Ubuntu

3. 验证配置是否生效
进入 WSL 2 后运行:

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

三、下载安装 Docker Desktop

1: 下载
访问 Docker 官方网站 下载

2:安装 Docker Desktop

3. 点击 “OK”,等待安装完成。

四、启动 Docker Desktop

{
    "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"
    ]
}

  1. 打开 PowerShell命令提示符(CMD)
  2. 运行以下命令:
docker --version

docker run hello-world

看到 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

参数说明:

Redis

拉取镜像并运行容器:

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

参数说明:

方法二:docker-compose.yml(Docker Compose )

在PowerShell中导航到目标目录

创建 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:/data
volumes:
  pgdata:
  redisdata:
"@ | Out-File -Encoding utf8 docker-compose.yml

验证:

cat docker-compose.yml

运行:

docker-compose up -d

验证容器运行状态

docker ps

(两种方法功能对比)

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

六、连接数据库

PostgreSQL

docker exec -it postgres psql -U myuser -d mydb

Redis

  docker exec -it redis redis-cli

七、其他常用命令

docker常用管理命令

常用 Compose 命令

命令作用
docker-compose up -d启动所有服务(后台运行)
docker-compose down停止并删除所有容器
docker-compose ps查看运行中的服务
docker-compose logs -f实时查看日志
docker-compose restart重启服务

到此这篇关于最新 Docker (WSL 2)部署 PostgreSQL 和 Redis数据库(超详细)的文章就介绍到这了,更多相关Docker部署 PostgreSQL内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

您可能感兴趣的文章:
阅读全文