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会有问题,暂时没有找到解决办法

其他请参考官方文档

posted @ 2024-03-12 12:47  花开重日  阅读(52)  评论(0编辑  收藏  举报