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
相关推荐
leeyi10 小时前
把软件装进不能上网的机房——一套建好了、还没上过战场的交付工程(第101篇)
docker·aigc·agent
YIAN12 小时前
Docker + Nginx 核心原理扫盲:从环境隔离到反向代理,运维面试必考点
后端·docker·面试
IT大白鼠15 小时前
Docker 实战 ELKF 日志监控:容器日志全栈收集分析方案
运维·docker·容器
贝锐1 天前
从国产化信创设备到商用安卓终端,向日葵如何帮助企业实现统一运维管理?
linux·运维·远程控制
Julien20041 天前
调查和解决 SELinux 问题
linux·运维·服务器·网络·学习方法
报错小能手1 天前
Kubernetes入门实战课 3
云原生·容器·kubernetes
天远Date Lab1 天前
零信任架构实战:基于天远双人婚姻评估查询构建自动化房产按揭联合审查网关
运维·人工智能·架构·自动化
2601_962074681 天前
自己编译RustDesk,并将自建ID服务器和key信息写入客户端
运维·服务器
小张同学a.1 天前
Docker 容器实战 1—— docker 基础与镜像构建
linux·运维·docker·容器
大模型丫丫1 天前
Hermes Agent:轻量级智能体框架实战指南
大数据·运维·服务器