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> 以安装一个发行版。
在Windows中访问Ubuntu文件
# \\wsl$\Ubuntu\home\<user name>\Project
cd \\wsl$\Ubuntu\home\wq\mysql
在Ubuntu访问Windows文件
# /mnt/d相当于D:\
cd /mnt/d/
在cmd中使用linux命令
# ls -l
wsl ls -l
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会有问题,暂时没有找到解决办法