WSL基本使用,Ubuntu->docker->MySQL8

适用于 Linux 的 Windows 子系统 (WSL) 可让开发人员直接在 Windows 上按原样运行 GNU/Linux 环境(包括大多数命令行工具、实用工具和应用程序),且不会产生传统虚拟机或双启动设置开销。

基本使用

安装

# 此命令将启用运行 WSL 并安装 Linux 的 Ubuntu 发行版所需的功能。
wsl --install
仅当根本没有安装 WSL 时,上述命令才有效。 
如果运行 wsl --install 并查看 WSL 帮助文本,
请尝试运行 wsl --list --online 以查看可用发行版列表
并运行 wsl --install -d <DistroName> 以安装一个发行版。

image.png

在Windows中访问Ubuntu文件

# \\wsl$\Ubuntu\home\<user name>\Project
cd \\wsl$\Ubuntu\home\wq\mysql

image.png

在Ubuntu访问Windows文件

# /mnt/d相当于D:\
cd /mnt/d/

image.png

在cmd中使用linux命令

# ls -l
wsl ls -l

image.png

WSL2切换默认的Linux子系统

wslconfig /list
wslconfig /setdefault Ubuntu
wslconfig /list

卸载Linux子系统

wsl --list
wsl --unregister Ubuntu-20.04
wsl --list

注意:一旦注销,与该发行版相关的所有数据、设置和软件都将永久丢失,三思而后行。

Ubuntu安装docker

使用官方安装脚本自动安装

安装命令如下:

 curl -fsSL https://test.docker.com -o test-docker.sh
 sudo sh test-docker.sh

添加用户到docker组

创建docker用户组

sudo groupadd docker

添加当前用户加入docker用户组

sudo usermod -aG docker ${USER}

重启docker服务

sudo systemctl restart docker

生效配置

sudo newgrp docker

docker安装运行mysql8

拉取镜像

docker pull mysql:8.0.27

创建挂载使用到的目录

mkdir -vp /home/wq/mysql
cd /home/wq/mysql
mkdir data logs conf

启动mysql

docker run -d -p 3306:3306 --name mysql --rm -e MYSQL_ROOT_PASSWORD=qifeng mysql:8.0.27

拷贝mysql的配置文件

docker cp mysql:/etc/mysql /home/wq/mysql/conf

停止并删除容器

docker stop mysql

重新启动容器(指定数据卷)

docker run  -d  -p 3306:3306 \
--name mysql \
--privileged=true \
--restart=unless-stopped \
-v /home/wq/mysql/conf/mysql/conf.d:/etc/mysql/conf.d \
-v /home/wq/mysql/logs:/var/log/mysql \
-v /home/wq/mysql/data/mysql:/var/lib/mysql \
-e MYSQL_ROOT_PASSWORD=qifeng \
mysql:8.0.27

修改权限和密码

#进入容器
docker exec -it mysql bash
#登录
mysql -uroot -p
use mysql;
# 执行sql,创建远程可以连接mysql的用户
CREATE USER 'wq'@'%' IDENTIFIED WITH mysql_native_password BY 'qifeng';
#修改密码
# ALTER USER 'wq'@'%' IDENTIFIED BY 'qifeng';
#修改权限
GRANT ALL PRIVILEGES ON *.* TO 'wq'@'%';
#刷新权限
flush privileges;
#退出Mysql
exit;
#入退出容器
exit

wsl安装使用centos

导出CentOS.tar文件

在Ubuntu中启动docker

sudo service docker start

在 Docker 中运行 CentOS 容器

docker run -it --rm centos bash

使用 grep 和 awk 获取 CentOS 容器 ID:

dockerContainerID=$(docker container ls -a | grep -i centos | awk '{print $1}')

将容器 ID 导出到装载的 C盘上的 tar 文件

docker export $dockerContainerID > /mnt/c/temp/centos.tar


此过程从 Docker 容器导出 CentOS tar 文件,这样我们现在就可以导入它,以在本地将其与 WSL 一起使用。

将 tar 文件导入 WSL

准备好 tar 文件后,可使用以下命令导入它:wsl --import

打开 PowerShell,并确保已创建一个要存储发行版的文件夹

cd C:\temp
mkdir E:\wslDistroStorage\CentOS

使用命令 wsl --import 导入 tar 文件

wsl --import CentOS E:\wslDistroStorage\CentOS .\centos.tar

使用命令 wsl -l -v 检查已安装的发行版

运行

  • 最后,使用命令 wsl -d CentOS 运行新导入的 CentOS Linux 发行版
wsl -d CentOS
  • 注意导入的CentOS运行docker会有问题,暂时没有找到解决办法

备份与恢复

备份

image.png

wsl --export Ubuntu-22.04 D:\vmware\Ubuntu-22.04.tar

image.png

恢复

wsl --import Ubuntu-22.04 D:\vmware\ubuntu22 D:\vmware\Ubuntu-22.04.tar --version 2
  • 上述命令将从备份文件 “Ubuntu-22.04.tar” 中导入 Ubuntu WSL 子系统,并将其存储在 “D:\vmware\ubuntu22” 目录下。请确保目标目录存在并且是空的。

注意事项

在备份和恢复 WSL 子系统时,有几点需要注意:

  • 备份文件保存路径:确保备份文件存储在其他磁盘或存储设备中,避免与系统盘数据放在同一处。
  • 版本匹配:在恢复 WSL 子系统时,确保使用相同版本的 WSL。上述例子中,使用了 “–version 2” 参数,表示使用 WSL 2 版本。
  • 备份系统配置:上述备份方法只备份了 WSL 子系统本身的数据,不包括系统配置和用户数据。如需备份系统配置和用户数据,请另外进行备份。
  • 备份与网络状态:在备份和恢复 WSL 子系统时,最好断开网络连接,避免数据在备份和恢复过程中发生冲突或丢失。

恢复后登录用户默认为root修改方式

查看uid

cat /etc/passwd

image.png

打开注册表修改

  • 首先在注册表那 ctrl + F 查找Lxss
  • 找到BasePath数据为迁移后目录的那个文件夹,我这里只有一个就不用继续找了直接改
  • 将DefaultUid的数据修改为ubuntu中普通用户对应的数字(十进制)
  • 然后就完美解决了,变为熟悉的界面

image.png

其他请参考官方文档

  • 31
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值