WSL和Hyper-V Ubuntu安装docker Docker安装Reids、MySQL、PostgreSQL和RabbitMQ

WSL和Hyper-V

WSL,Windows Subsystem for Linux,在Windows10\11上能够运行原生Linux二进制可执行文件(ELF格式)的兼容层。

Hyper-V,完整的硬件虚拟化平台,WSL(特别是 WSL 2)是基于Hyper-V架构的轻量级Linux子系统‌,两者在资源占用、启动速度和使用场景上有明显区别,可根据开发需求选择搭配使用。微软官方提供了详细的启用指南与架构说明。

WSL的操作

复制代码
# 查看已安装WSL列表
wsl --list --verbose
# 简写
wsl -l -v

# 一键关闭所有WSL实例
wsl --shutdown

# 先关闭再启动
wsl --shutdown
wsl

# 安装Ubuntu
wsl --install
wsl --install -d Ubuntu-24.04 --web-download
wsl --install -d Ubuntu-24.04 --location "D:\WSL\Ubuntu24" --web-download
# 注销/彻底删除实例(慎用)
wsl --unregister Ubuntu

# 查看WSL真实内网 IP
ip addr show eth0
# 获取 IP
hostname -I

# 查看监听端口
ss -tlnp
# 或
netstat -tulpn

Ubuntu安装docker

Docker,容器化平台,打包应用、依赖、配置成独立容器,一处打包、随处运行。Docker 容器:共享宿主系统内核,体积小、速度快。

核心概念: 镜像Image:程序模板,相当于安装包;容器Container:镜像运行实例,独立隔离运行环境;仓库 Registry:存放镜像的公共/私有仓库;数据卷 Volume:持久化存储,容器删数据不丢。

安装docker

复制代码
#先更新系统包
sudo apt update && sudo apt upgrade -y

# 安装依赖
sudo apt install ca-certificates curl gnupg lsb-release -y

# 先清理旧文件
sudo rm -f /etc/apt/trusted.gpg.d/docker.gpg
sudo rm -f /etc/apt/sources.list.d/docker.list

# 下载 国内阿里云 Docker 密钥
curl -fsSL http://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/trusted.gpg.d/docker.gpg

# 添加 国内阿里云 Docker 源
echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/trusted.gpg.d/docker.gpg] http://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

# 安装 Docker
sudo apt update
sudo apt install docker-ce docker-ce-cli containerd.io -y

# 免sudo使用
sudo usermod -aG docker $USER

# 配置国内镜像源
sudo mkdir -p /etc/docker
sudo nano /etc/docker/daemon.json
{
  "registry-mirrors": [
    "https://docker.1ms.run",
    "https://docker.xuanyuan.me",
    "https://docker.m.daocloud.io"
  ]
}
# 查看镜像源
docker info | grep -A 10 "Registry Mirrors"

# 确认是否启动成功
sudo service docker start
sudo service docker status
# 重启 Docker
sudo service docker restart

#退出重进 WSL(必须)
exit
# 重新打开WSL后运行
docker --version
docker run hello-world


docker pull 镜像名   # 拉镜像
docker run          # 启动容器
docker ps           # 查看运行容器
docker exec -it     # 进入容器
docker start/stop   # 启停容器
docker volume       # 管理数据卷

Docker安装Redis

安装Redis7

复制代码
# 拉取镜像
docker pull redis:7

# 查看本地下载好的镜像
docker images

# 启动(/后不能有空格和制表符)
docker run -d \
  --name redis \
  -p 6379:6379 \
  -v redis-data:/data \
  --restart always \
  redis:7 \
  redis-server \
  --appendonly yes \
  --requirepass 123456

# 数据卷:-v redis-data:/data
docker volume inspect redis-data
docker volume ls

# 启动(Windows目录不支持Linux权限)
docker run -d \
  --name redis7 \
  --restart always \
  -p 6379:6379 \
  -v /mnt/c/Users/super/.redis/data:/data \
  redis:7 \
  redis-server \
  --requirepass 123456 \
  --appendonly yes

# 查看Docker容器正在运行的实例
docker ps
# 查看Docker容器所有的的实例
docker ps -a

# 进入Redis 7客户端
docker exec -it redis7 redis-cli
# 输入密码
auth 123456

# 停止/启动
docker stop redis7
docker start redis7

# 删除docker容器实例
docker rm -f [容器ID/名称]

Docker安装MySQL

安装MySQL8:

复制代码
# 拉取镜像
docker pull mysql:8.0

# 查看本地下载好的镜像
docker images

# 启动(/后不能有空格和制表符)
docker run -d \
  --name mysql8 \
  -p 3306:3306 \
  -e MYSQL_ROOT_PASSWORD=123456 \
  -v mysql-data:/var/lib/mysql \
  --restart=always \
  mysql:8.0

# 数据卷:-v mysql-data:/var/lib/mysql
docker volume inspect mysql-data
docker volume ls

# 启动(Windows目录不支持Linux权限)
docker run -d \
  --name mysql8 \
  -p 3306:3306 \
  -e MYSQL_ROOT_PASSWORD=123456 \
  -v /mnt/c/Users/super/.mysql/data:/var/lib/mysql/ \
  --restart=always \
  mysql:8.0

# 查看Docker容器正在运行的实例
docker ps
# 查看Docker容器所有的的实例
docker ps -a

# 进入MySQL客户端
docker exec -it mysql8 /bin/bash

# 停止/启动
docker stop mysql8
docker start mysql8

# 删除docker容器实例
docker rm -f [容器ID/名称]

Docker安装PostgreSQL

安装PostgreSQL16:

复制代码
# 拉取镜像
docker pull postgres:16

# 查看本地下载好的镜像
docker images

# 启动(/后不能有空格和制表符)
docker run -d \
  --name postgres16 \
  --restart=always \
  -p 5432:5432 \
  -e POSTGRES_PASSWORD=123456 \
  -e POSTGRES_USER=postgres \
  -e POSTGRES_DB=postgres \
  -v postgres-data:/var/lib/postgresql/data \
  postgres:16
参数:
  -e POSTGRES_USER=safe,可选,默认 postgres。
  -e POSTGRES_DB=app,可选,创建初始数据库。
  -v postgres-data:/var/lib/postgresql/data,数据持久化。
  --restart unless-stopped,自动重启。

# 数据卷:  -v postgres-data:/var/lib/postgresql/data
docker volume inspect postgres-data
docker volume ls

# 查看Docker容器正在运行的实例
docker ps
# 查看Docker容器所有的的实例
docker ps -a

# 进入MySQL客户端
docker exec -it postgres16 /bin/bash

# 停止/启动
docker stop postgres16
docker start postgres16

# 删除docker容器实例
docker rm -f postgres16
docker rm -f [容器ID/名称]


-v mysql-data:/var/lib/mysql


docker run -d \
  --name redis \
  -p 6379:6379 \
  -v redis-data:/data \
  --restart always \
  redis:7 \
  redis-server \
  --appendonly yes \
  --requirepass 123456

# 数据卷:-v redis-data:/data
docker volume inspect redis-data

Docker安装RabbitMQ

安装RabbitMQ4.2:

复制代码
# 再拉取镜像
docker pull rabbitmq:4.2-management

# 查看本地下载好的镜像
docker images

# 启动(/后不能有空格和制表符)
# 版本:4.2(带管理面板)
# 容器名:rabbitmq,
# AMQP 端口:5672(程序连接用)
# WEB 管理端口:15672(浏览器访问)
# 默认账号:admin,默认密码:123456
# 数据卷:rabbitmq-data(不丢数据、不权限报错)
# 访问地址: http://localhost:15672/
docker run -d \
  --name rabbitmq \
  --restart=always \
  -p 5672:5672 \
  -p 15672:15672 \
  -e RABBITMQ_DEFAULT_USER=admin \
  -e RABBITMQ_DEFAULT_PASS=123456 \
  -v rabbitmq-data:/var/lib/rabbitmq \
  rabbitmq:4.2-management

# 查看数据卷
docker volume ls

# 查看Docker容器正在运行的实例
docker ps
# 查看Docker容器所有的的实例
docker ps -a

# 进入MySQL客户端
docker exec -it rabbitmq /bin/bash

# 停止/启动
docker stop rabbitmq
docker start rabbitmq

# 删除docker容器实例
docker rm -f rabbitmq
相关推荐
小黑蛋学java34 分钟前
Nginx 接口耗时 Prometheus + Grafana 监控实施方案
运维·nginx·负载均衡·grafana·prometheus
鹤鸣的日常1 小时前
前端运行时动态环境变量方案
前端·react.js·docker·前端框架·vue·gitlab
asyxchenchong8882 小时前
最新Hermes Agent 技能封装与科研自动化:以 Meta-Analysis 为例-实现从文献检索到绘图的一站式工作流
运维·人工智能·自动化
tianyuanwo2 小时前
项目内自我管理:一名OS领域DevOps的破局之路
运维·devops
三十..3 小时前
Redis 核心原理与高可用架构实践
运维·数据库·redis
我是谁??5 小时前
ubuntu22.04 通过docker部署vLLM(Qwen3-0.6B)大模型+New API+OpenWebUI
docker·容器·vllm
jinglong.zha5 小时前
LScript-从零基础到商业变现的AI自动化学习平台
运维·学习·自动化
运维瓦工5 小时前
DevOps 生态介绍(十):Docker Compose 核心 YAML 配置详解与常用命令大全
spring cloud·docker·容器
Adorable老犀牛5 小时前
Telegraf:InfluxData 出品的指标采集代理
运维·telegraf
云烟成雨TD5 小时前
Spring AI 1.x 系列【59】容器化开发支持:Docker Compose 与 Testcontainers
人工智能·spring·docker