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
相关推荐
周易宅1 小时前
Docker MySQL 8.0.45 性能优化配置文档
mysql·docker·性能优化
安妮的小熊呢1 小时前
CRMEB标准版v6.0: 商城DIY装修新升级,PS级自由设计!
运维·javascript·平面·信息可视化·小程序·开源软件
米高梅狮子1 小时前
01.ELK企业日志分析系统
运维·服务器·网络·数据库·elk·oracle
逆境不可逃1 小时前
Hello-Agents 第二部分-第九章总结:上下文工程
linux·运维·服务器
阿达hi1 小时前
RPA 自动化SAP 流程授权
运维·自动化·rpa
ん贤1 小时前
Kubernetes 核心资源对象与应用编排基础
云原生·容器·kubernetes
团象科技1 小时前
跨境业务链路频繁卡壳时,海外云服务器如何优化成本结构
运维·服务器
小此方1 小时前
Re:Linux系统篇(十九)进程篇·四:内核托底与生死交错 ,深度硬核剖析“僵尸”与“孤儿”进程
linux·运维·驱动开发
LZZ and MYY1 小时前
将Virtual PLCnext 部署在PVE的LXC容器
云原生·容器·kubernetes