0x01 安装wsl2

官方安装指南

自动安装 适合2004及以上版本

手动安装 适合1903或1909及以上版本

简介

如果您想在最新的Windows版本中试用经过改进的WSL2(Windows Subsystem for Linux 2),请按照以下方法操作,我们在这篇文章中涵盖了安装它所需做的一切。

WSL 2是对微软在2017年推出的WSL原始版本的重大升级。WSL2不仅仅是一个版本升级。不经更快、更多功能,并且使用了真正的Linux内核。未来的Linux内核更新甚至会以Windows 10软件更新的形式发布,想想看,这是不是有点疯狂!

微软创建WSL 2的目标是提高性能。做到这一点的最佳方法是什么?添加完全的系统调用兼容性,即以真正的Linux内核为核心。

如果您无法升级,也不要着急。因为在2020年8月,Microsoft将WSL 2反向移植到Windows 10的较早版本。任何使用1903或1909版本的人也可以安装WSL 2——但必须先安装Windows Update KB4566116。

追求完美的Windows用户还可以强制安装Windows 10 2020 年 5 月更新,请记住,如果您按照这种方法操作,可能会遇到缺少的驱动程序,GUI故障或其他硬件故障。

从技术上讲,您可以在Windows 10 build 18917或更高版本的“内部”版本上安装WSL 2。我不太熟悉“内部”构建系统是如何工作的,所以请注意,这篇文章的其余部分是基于在Windows的稳定版本上使用该特性。

您的计算机还需要支持Hyper-V虚拟化才能运行WSL2。你可以检查你的Hyper-V支持。

安装WSL 2前一定要首先开启VT(Intel Virtuallization Technology)功能!!!

如果您不能同时满足这两个要求,则无法安装或启用WSL 2,但可以使用WSL 1。

在Windows 10上安装WSL 2的过程如下:

  1. 启用WSL 2
  2. 启用“虚拟机平台”
  3. 将WSL2设置为默认值
  4. 安装Linux发行版

我将依次使用PowerShell应用程序逐步完成每个步骤,您需要以管理员身份运行该应用程序。您可以在Windows“开始”菜单中找到PowerShell。

注意:也可以使用GUI安装WSL 1,但是使用命令行的速度要快得多,并且由于WSL是CLI工具,因此这样做也很有意义吧!

安装过程

第一步:启用WSL

无论您要使用哪个版本的WSL,都首先需要启用它。使用管理员打开PowerShell工具,输入以下指令:

dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart

只想使用WSL 1?那就跳至第四步。

第二步:启用“虚拟机平台”

WSL 2需要启用Windows 10的“虚拟机平台”功能。计算机需要虚拟化功能才能使用此功能。这是与Hyper-V分开的,并提供了一些新的适用于 Linux 的 Windows 子系统中可用的更有趣的平台集成。

要在Windows 10(2004)上启用虚拟机平台,请以管理员身份打开PowerShell并运行:

dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart

要在Windows 10(1903,1909)上启用虚拟机平台,请以管理员身份打开PowerShell并运行:

Enable-WindowsOptionalFeature -Online -FeatureName VirtualMachinePlatform -NoRestart

为了确保所有相关的部分都能到位,您应该在此时重新启动系统,否则您可能会发现事情并没有按照预期工作。

第三步:将WSL2设置为默认值

以管理员身份打开PowerShell,然后运行以下命令以将WSL 2设置为WSL的默认版本:

wsl --set-default-version 2

这里可能会提示

- WSL 2 需要更新其内核组件。有关信息,请访问 https://aka.ms/wsl2kernel

需要从微软下载WSL2 Linux内核的升级包

下载地址为:https://wslstorestorage.blob.core.windows.net/wslblob/wsl_update_x64.msi

第四步:安装发行版

有了WSL和必要的虚拟化技术之后,您要做的就是从Microsoft Store中选择并安装Linux发行版。

提供了几种不同的发行版,包括OpenSUSE,Pengwin,Fedora Remix和Alpine Linux。但是我个人的建议是Ubuntu 20.04 LTS(尽管也有18.04 LTS和16.04 LTS可用)。

要在Windows 10上安装Ubuntu,请打开Microsoft Store应用,搜索“ Ubuntu 20.04”,然后单击“获取”按钮:

如果无法直接搜索到,可以打开以下网址,点击获取后跳转到Microsoft Store应用

https://www.microsoft.com/zh-cn/p/ubuntu-2004/9n6svws3rx71?rtc=1&activetab=pivot:overviewtab

此时会遇到所在地区不支持通过Microsoft.com购买的问题

点击设置 > 时间和语言 > 区域设置为美国

此时即可以进行安装

完成后点击Ubuntu即可进入,第一次进入需要设置用户名和密码

wsl下的Ubuntu自动下载了部分软件,例如Python等

也可以通过lsb_release -a查看Ubuntu的版本信息

0x02 Terminal安装

安装

  • Win10下可以在应用商店中安装,安装过程与安装Ubuntu类似

  • Win11自带Terminal终端

配置

直接点击设置后可以对终端样式进行配置,本质上就是通过settings.json文件对各部分内容进行配置

打开该配置文件下拉可以找到

    // Add custom color schemes to this array.// To learn more about color schemes, visit https://aka.ms/terminal-color-schemes// To find color-schemes: https://windowsterminalthemes.dev/"schemes": []

schemas中可以添加各种主题,例如

    // Add custom color schemes to this array.// To learn more about color schemes, visit https://aka.ms/terminal-color-schemes// To find color-schemes: https://windowsterminalthemes.dev/"schemes": [{"name": "Atom","black": "#000000","red": "#fd5ff1","green": "#87c38a","yellow": "#ffd7b1","blue": "#85befd","purple": "#b9b6fc","cyan": "#85befd","white": "#e0e0e0","brightBlack": "#000000","brightRed": "#fd5ff1","brightGreen": "#94fa36","brightYellow": "#f5ffa8","brightBlue": "#96cbfe","brightPurple": "#b9b6fc","brightCyan": "#85befd","brightWhite": "#e0e0e0","background": "#161719","foreground": "#c5c8c6","selectionBackground": "#444444","cursorColor": "#d0d0d0"},{"name": "CyberPunk2077","black": "#272932","red": "#710000","green": "#1AC5B0","yellow": "#FDF500","blue": "#9381FF","purple": "#742D8B","cyan": "#00D0DB","white": "#D1C5C0","brightBlack": "#7b8097","brightRed": "#C71515","brightGreen": "#40FFE9","brightYellow": "#fff955","brightBlue": "#37EBF3","brightPurple": "#CB1DCD","brightCyan": "#37EBF3","brightWhite": "#C1DEFF","background": "#272932","foreground": "#E455AE","selectionBackground": "#742D8B","cursorColor": "#FDF500"},{"name": "Flatland","black": "#272932","red": "#f18339","green": "#9fd364","yellow": "#f4ef6d","blue": "#5096be","purple": "#695abc","cyan": "#d63865","white": "#ffffff","brightBlack": "#7b8097","brightRed": "#d22a24","brightGreen": "#a7d42c","brightYellow": "#ff8949","brightBlue": "#61b9d0","brightPurple": "#695abc","brightCyan": "#d63865","brightWhite": "#ffffff","background": "#1d1f21","foreground": "#b8dbef","selectionBackground": "#2b2a24","cursorColor": "#708284"}]

主题样式可以在下面网站中寻找,找到后直接复制到schemes中即可

https://windowsterminalthemes.dev/

如果需要引用则在 profileslists 的相关主题中进行引用,例如powershell中使用Flatland主题

下面是一个完整的配置文件案例

// This file was initially generated by Windows Terminal 1.6.10571.0
// It should still be usable in newer versions, but newer versions might have additional
// settings, help text, or changes that you will not see unless you clear this file
// and let us generate a new one for you.// To view the default settings, hold "alt" while clicking on the "Settings" button.
// For documentation on these settings, see: https://aka.ms/terminal-documentation
{"$schema": "https://aka.ms/terminal-profiles-schema","defaultProfile": "{61c54bbd-c2c6-5271-96e7-009a87ff44bf}",// You can add more global application settings here.// To learn more about global settings, visit https://aka.ms/terminal-global-settings// If enabled, selections are automatically copied to your clipboard."copyOnSelect": false,// If enabled, formatted data is also copied to your clipboard"copyFormatting": false,// A profile specifies a command to execute paired with information about how it should look and feel.// Each one of them will appear in the 'New Tab' dropdown,//   and can be invoked from the commandline with `wt.exe -p xxx`// To learn more about profiles, visit https://aka.ms/terminal-profile-settings"profiles":{"defaults":{// Put settings here that you want to apply to all profiles.},"list":[{// Make changes here to the powershell.exe profile."guid": "{61c54bbd-c2c6-5271-96e7-009a87ff44bf}","name": "Windows PowerShell","commandline": "powershell.exe","colorScheme": "Flatland","hidden": false},{// Make changes here to the cmd.exe profile."guid": "{0caa0dad-35be-5f56-a8ff-afceeeaa6101}","name": "命令提示符","commandline": "cmd.exe","hidden": false},{"guid": "{b453ae62-4e3d-5e58-b989-0a998ec441b8}","hidden": false,"name": "Azure Cloud Shell","source": "Windows.Terminal.Azure"},{"guid": "{07b52e3e-de2c-5db4-bd2d-ba144ed6c273}","hidden": false,"name": "Ubuntu-20.04","source": "Windows.Terminal.Wsl"}]},// Add custom color schemes to this array.// To learn more about color schemes, visit https://aka.ms/terminal-color-schemes// To find color-schemes: https://windowsterminalthemes.dev/"schemes": [{"name": "Atom","black": "#000000","red": "#fd5ff1","green": "#87c38a","yellow": "#ffd7b1","blue": "#85befd","purple": "#b9b6fc","cyan": "#85befd","white": "#e0e0e0","brightBlack": "#000000","brightRed": "#fd5ff1","brightGreen": "#94fa36","brightYellow": "#f5ffa8","brightBlue": "#96cbfe","brightPurple": "#b9b6fc","brightCyan": "#85befd","brightWhite": "#e0e0e0","background": "#161719","foreground": "#c5c8c6","selectionBackground": "#444444","cursorColor": "#d0d0d0"},{"name": "CyberPunk2077","black": "#272932","red": "#710000","green": "#1AC5B0","yellow": "#FDF500","blue": "#9381FF","purple": "#742D8B","cyan": "#00D0DB","white": "#D1C5C0","brightBlack": "#7b8097","brightRed": "#C71515","brightGreen": "#40FFE9","brightYellow": "#fff955","brightBlue": "#37EBF3","brightPurple": "#CB1DCD","brightCyan": "#37EBF3","brightWhite": "#C1DEFF","background": "#272932","foreground": "#E455AE","selectionBackground": "#742D8B","cursorColor": "#FDF500"},{"name": "Flatland","black": "#272932","red": "#f18339","green": "#9fd364","yellow": "#f4ef6d","blue": "#5096be","purple": "#695abc","cyan": "#d63865","white": "#ffffff","brightBlack": "#7b8097","brightRed": "#d22a24","brightGreen": "#a7d42c","brightYellow": "#ff8949","brightBlue": "#61b9d0","brightPurple": "#695abc","brightCyan": "#d63865","brightWhite": "#ffffff","background": "#1d1f21","foreground": "#b8dbef","selectionBackground": "#2b2a24","cursorColor": "#708284"}],// Add custom actions and keybindings to this array.// To unbind a key combination from your defaults.json, set the command to "unbound".// To learn more about actions and keybindings, visit https://aka.ms/terminal-keybindings"actions":[// Copy and paste are bound to Ctrl+Shift+C and Ctrl+Shift+V in your defaults.json.// These two lines additionally bind them to Ctrl+C and Ctrl+V.// To learn more about selection, visit https://aka.ms/terminal-selection{ "command": {"action": "copy", "singleLine": false }, "keys": "ctrl+c" },{ "command": "paste", "keys": "ctrl+v" },// Press Ctrl+Shift+F to open the search box{ "command": "find", "keys": "ctrl+shift+f" },// Press Alt+Shift+D to open a new pane.// - "split": "auto" makes this pane open in the direction that provides the most surface area.// - "splitMode": "duplicate" makes the new pane use the focused pane's profile.// To learn more about panes, visit https://aka.ms/terminal-panes{ "command": { "action": "splitPane", "split": "auto", "splitMode": "duplicate" }, "keys": "alt+shift+d" }]
}

0x03 WSL Ubuntu基本操作

Terminal打开Ubuntu

Terminal下直接有Ubuntu-20.04,选中即可

设置root账户密码

默认的wsl没有设置root密码,需要通过管理员方法来设置root密码

sudo passwd root

效果如下

ysp@DESKTOP-M8DDPVJ:~$ sudo  passwd root
[sudo] password for ysp:
Enter new UNIX password:
Retype new UNIX password:
passwd: password updated successfully
ysp@DESKTOP-M8DDPVJ:~$ su root
Password:
root@DESKTOP-M8DDPVJ:/home/ysp# clear
root@DESKTOP-M8DDPVJ:/home/ysp#

配置用户sudo免密

由于默认情况下我们不知道 root 用户的密码,所以如果我们想要使用 root 用户的话可以使用按照上一步的命令为 root 用户设置一个新的密码,同时为了避免sudo切换root是需要输入密码,把自己配置的用户名加到sudo免密中,可以在root账户下输入如下命令:

# root账户下执行以下指令,替换leap为自己单独配置的用户名
sudo echo "leap ALL=(ALL:ALL) NOPASSWD: ALL" >>/etc/sudoers

更换ubuntu的apt安装源

默认的安装源相对国内很慢,我们更换源到阿里云,登录到ubuntu后使用root账户执行如下操作:

cp /etc/apt/sources.list /etc/apt/sources.list.bakecho "deb http://mirrors.aliyun.com/ubuntu/ focal main restricted \
deb http://mirrors.aliyun.com/ubuntu/ focal-updates main restricted \
deb http://mirrors.aliyun.com/ubuntu/ focal universe \
deb http://mirrors.aliyun.com/ubuntu/ focal-updates universe \
deb http://mirrors.aliyun.com/ubuntu/ focal multiverse \
deb http://mirrors.aliyun.com/ubuntu/ focal-updates multiverse \
deb http://mirrors.aliyun.com/ubuntu/ focal-backports main restricted universe multiverse \
deb http://mirrors.aliyun.com/ubuntu/ focal-security main restricted \
deb http://mirrors.aliyun.com/ubuntu/ focal-security universe \
deb http://mirrors.aliyun.com/ubuntu/ focal-security multiverse">/etc/apt/sources.list

使用root账户执行更新:

apt update && apt upgrade -y

0x04 WSL Ubuntu安装docker

WSL Ubuntu下安装docker有两种方法,选择其中一种进行安装即可

原生linux安装docker方式

因为wsl2已经完整使用了linux内核了,此种方式和先前在linux虚拟机安装docker类似,步骤如下:

$ curl -fsSL https://get.docker.com -o get-docker.sh
$ sudo sh get-docker.sh
$ sudo service docker start

执行脚本安装过程中,脚本提示“建议使用Docker Desktop for windows”,20s内按Ctrl+C会退出安装,所以需要等待20s,另外此种方式需要访问外网。

检查docker安装正常

# 检查dockerd进程启动
service docker status
ps aux|grep docker
# 检查拉取镜像等正常
docker pull busybox
docker images

注意:不同于完全linux虚拟机方式,WLS2下通过apt install docker-ce命令安装的docker无法启动,因为WSL2方式的ubuntu里面没有systemd。上述官方get-docker.sh安装的docker,dockerd进程是用ubuntu传统的init方式而非systemd启动的。

Docker Desktop for windows方式

  • Docker 也专门开发了可以使用 WSL2 中的 Docker 守护进程的桌面管理程序, 打开 Docker Desktop WSL2 backend 页面,下载最新的 Docker Desktop for Windows 程序 ,建议下载stable版本。下载地址:

    https://www.docker.com/products/docker-desktop

  • 启动Docker Desktop for Windows,点击“设置”按钮,启用基于WSL2的引擎复选框(Use the WSL 2 based engine

  • 在 Resources 的WSL Integration中设置要从哪个 WSL2 发行版中访问 Docker,如下图使用的是 Ubuntu。

  • 重启 Docker desktop for Windows,重启完成后我们就可以在 WSL2里面使用 docker 命令了

  • 在WSL2里面执行df -Th,会发现增加了一些新的与docker有关的挂载点。

总结

  • WSL2下原生linux安装docker方式和完全linux虚拟机安装docker类似,区别在于WSL2下的linux不支持systemd
  • Docker Desktop for windows方式,其实质是利用docker的C/S架构,将windows模式下的docker对应docker.sock,docker客户端二进制和docker的数据目录挂载到WSL2里面的linux机器,在此linux机器下执行docker命令(docker命令为docker客户端),实质为客户端通过 挂载的/var/run/docker.sock文件与windows里面的dockerd服务端进程通信。如下图,我们在linux下重新启动linux下dockerd进程,linux模式下下载的busybox镜像又可以看到了,/var/run/docker.sock的时间戳也被更新了,此时客户端通过/var/run/docker.sock文件与linux下的dockerd服务端通信。
  • 要使用哪个模式下的docker,重启下该模式下的docker服务端即可,本质都是修改/var/run/docker.sock文件。理论可以同时使用,但是需要修改docker配置,通过-H参数增加dockerd的tcp监听,执行具体docker命令时指定dockerd监听的对应IP和端口即可。

0x05 WSL Docker使用MySQL

参考资料:https://www.runoob.com/docker/docker-install-mysql.html

查看可用的 MySQL 版本

访问 MySQL 镜像库地址:https://hub.docker.com/_/mysql?tab=tags 。

可以通过 Sort by 查看其他版本的 MySQL,默认是最新版本 mysql:latest

此外,我们还可以用 docker search mysql 命令来查看可用版本:

拉取 MySQL 镜像

这里我们拉取官方的最新版本的镜像:

# 拉取最新版
$ docker pull mysql:latest
# 拉取8.0.18版本
$ docker pull mysql:8.0.18

查看本地镜像

使用以下命令来查看是否已安装了 mysql:

$ docker images

运行容器

安装完成后,我们可以使用以下命令来运行 mysql 容器:

$ docker run -itd --name mysql-test -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123321 mysql:8.0.18

参数说明:

  • -p 3306:3306 :映射容器服务的 3306 端口到宿主机的 3306 端口,外部主机可以直接通过 宿主机ip:3306 访问到 MySQL 的服务
  • MYSQL_ROOT_PASSWORD=123321:设置 MySQL 服务 root 用户的密码

如果宿主机3306端口已经被占用,可以指定映射到其他端口号

# 将docker的mysql容器的3306号端口映射到宿主机的13306号端口上
$ docker run -itd --name mysql-test -p 13306:3306 -e MYSQL_ROOT_PASSWORD=123321 mysql:8.0.18

通过 docker ps -a 查看容器运行情况

停止容器

可以使用docker stop停止容器

$ docker stop 54de45a8a175

此时的状态为Exited

再次启动容器

使用docker start停止容器

$ docker start 54de45a8a175

此时状态再次切换为上线

进入容器

# 进入容器
$ docker exec -it 54de bash
# 退出容器
exit

0x06 WSL Docker使用Redis

拉取 Redis 镜像

这里我们拉取官方的最新版本的镜像:

$ docker pull redis:latest

查看本地镜像

使用以下命令来查看是否已安装了 redis:

$ docker images

运行容器

安装完成后,我们可以使用以下命令来运行 redis 容器:

$ docker run -itd --name redis-test -p 6379:6379 redis

参数说明:

  • -p 6379:6379:映射容器服务的 6379 端口到宿主机的 6379 端口。
  • 外部可以直接通过宿主机ip:6379 访问到 Redis 的服务。

安装成功

最后我们可以通过 docker ps 命令查看容器的运行信息

接着我们通过 redis-cli 连接测试使用 redis 服务。

$ docker exec -it redis-test /bin/bash

0x07 WSL Docker使用Mongo

拉取 Mongo 镜像

拉取 4.4.12 版的MongoDB

$ docker pull mongo:4.4.12

查看本地镜像

使用以下命令来查看是否已安装了 mongo:

$ docker images

运行容器

安装完成后,我们可以使用以下命令来运行 mongo 容器:

$ docker run -itd --name mongo-test -p 27017:27017 mongo:4.4.12 --auth

参数说明:

  • -p 27017:27017:映射容器服务的 27017 端口到宿主机的 27017 端口。外部可以直接通过 宿主机 ip:27017 访问到 mongo 的服务。
  • –auth:需要密码才能访问容器服务。

安装成功

最后我们可以通过 docker ps 命令查看容器的运行信息

接着使用以下命令添加用户和设置密码,并且尝试连接

$ docker exec -it mongo-test mongo admin
# 创建一个名为 admin,密码为 123456 的用户。
>  db.createUser({ user:'admin',pwd:'123321',roles:[ { role:'userAdminAnyDatabase', db: 'admin'},"readWriteAnyDatabase"]});
# 尝试使用上面创建的用户信息进行连接。
> db.auth('admin', '123321')

此时也可以通过可视化客户端进行连接(以navicat15为例)

0x08 WSL Ubuntu安装PIP

参考资料:https://linuxize.com/post/how-to-install-pip-on-ubuntu-20.04/

Ubuntu已经自带python

使用以下指令可以安装pip

# 更新apt
$ sudo apt update
# 安装python3-pip
$ sudo apt install python3-pip

使用 pip3 --version 可以查看pip3的版本

0x09 systemctl报错

wsl2中使用systemctl时会报如下错误

System has not been booted with systemd as init system (PID 1). Can't operate.
Failed to connect to bus: Host is down

使用如下指令进行安装

sudo apt install python2
# 备份原有systemctl
sudo mv /usr/bin/systemctl /usr/bin/systemctl.old
# 下载,请耐心等待...
# 如果实在下载不下来可以直接访问网址获取该文件,然后拷贝为temp文件
curl https://raw.githubusercontent.com/gdraheim/docker-systemctl-replacement/master/files/docker/systemctl.py >temp
sudo mv temp /usr/bin/systemctl
sudo chmod +x /usr/bin/systemctl

0x0a 与win10的数据互访

在Ubuntu系统下访问win10的home目录

win10系统挂载在mnt目录下

通过cp可以将win10文件拷贝到wsl下或者将wsl内容拷贝到win10中

0x0b WSL Docker使用ES/Kibana

1.docker安装es

要使用es肯定是需要安装的,由于用惯了docker,所以也想在docker上尝试一下,主要是因为我的好多软件都以及选择了docker。docker安装其实是很简单的,至于要一行命令即可。这里我选择的是es的7.2.0版本镜像镜像安装,具体安装命令如下:

docker pull elasticsearch:7.2.0

敲完命令以后回车,只需要等带镜像下载完成就可以了。

1.1 启动es

安装完成以后当然需要去启动我们的es了,这里启动也是很方便的只需要一行命令即可。如下:

docker run --name elasticsearch -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" -d elasticsearch:7.2.0

这样es就启动好了。我们可以去检查es是否安装完成,可以输入命令:

curl http://localhost:9200

或者在浏览器中打开http://localhost:9200这个网址,如果能看到以下信息则说明我们的es是已经安装好了的。

{"name" : "530dd7820315","cluster_name" : "docker-cluster","cluster_uuid" : "7O0fjpBJTkmn_axwmZX0RQ","version" : {"number" : "7.2.0","build_flavor" : "default","build_type" : "docker","build_hash" : "508c38a","build_date" : "2019-06-20T15:54:18.811730Z","build_snapshot" : false,"lucene_version" : "8.0.0","minimum_wire_compatibility_version" : "6.8.0","minimum_index_compatibility_version" : "6.0.0-beta1"},"tagline" : "You Know, for Search"
}

如果你是在服务器上安装,想要对外访问还必须打开你服务器的9200端口,然后将localhost换成你服务器的ip地址即可。

1.2 修改配置,解决跨域访问问题

首先进入到容器中,然后进入到指定目录修改elasticsearch.yml文件。

docker exec -it elasticsearch /bin/bash
cd /usr/share/elasticsearch/config/
vi elasticsearch.yml

elasticsearch.yml的文件末尾加上:

http.cors.enabled: true
http.cors.allow-origin: "*"

修改配置后重启容器即可。

docker restart elasticsearch

1.3 安装ik分词器

es自带的分词器对中文分词不是很友好,所以我们下载开源的IK分词器来解决这个问题。首先进入到plugins目录中下载分词器,下载完成后然后解压,再重启es即可。具体步骤如下:
**注意:**elasticsearch的版本和ik分词器的版本需要保持一致,不然在重启的时候会失败。可以在这查看所有版本,选择合适自己版本的右键复制链接地址即可。点击这里

cd /usr/share/elasticsearch/plugins/
elasticsearch-plugin install https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v7.2.0/elasticsearch-analysis-ik-7.2.0.zip
exit
docker restart elasticsearch

然后可以在kibana界面的dev tools中验证是否安装成功;

POST test/_analyze
{"analyzer": "ik_max_word","text": "你好我是东邪Jiafly"
}

不添加"analyzer": "ik_max_word",则是每个字分词,可以在下面kibana安装完成以后尝试一下。

2.kibana安装

2.1 docker安装kibana

同样适用docker安装kibana命令如下:

docker pull kibana:7.2.0

等待所有镜像下载完成即可。

2.2 启动kibana

安装完成以后需要启动kibana容器,使用--link连接到elasticsearch容器,命令如下:

docker run --name kibana --link=elasticsearch:test  -p 5601:5601 -d kibana:7.2.0
docker start kibana

启动以后可以打开浏览器输入http://localhost:5601就可以打开kibana的界面了。

0x0c WSL Ubuntu使用Clickhouse

拉取镜像

# 拉取镜像
$ docker pull yandex/clickhouse-server
# 登录docker,否则可能报如下错误
# repository does not exist or may require 'docker login': denied: requested access to the resource is denied
$ docker login
$ docker pull yandex/clickhouse-clinet

启动容器

# 直接运行,不加载数据卷
$ docker run -d --name ch-server --ulimit nofile=262144:262144 -p 8123:8123 -p 9000:9000 -p 9009:9009 yandex/clickhouse-server
# 基于镜像创建容器运行(指定本地磁盘与容器目录的挂载映射)
# --volume=/home/zyx/dockerhome/clickhouse/clickhouse-test-db
$ docker run -d --name clickhouse-test-server --ulimit nofile=262144:262144 -p 8123:8123 -p 9000:9000 -p 9009:9009 --volume=/home/zyx/dockerhome/clickhouse/clickhouse-test-db:/var/lib/clickhouse yandex/clickhouse-server

进入容器内部

# 1. 进入容器内部
$ docker exec -it clickhouse-test-server /bin/bash# 2. 在容器内部,运行clickhouse-client
#   root@9e40ca366829:注意:这里已经是进入到了容器内部了.
root@9e40ca366829:/# clickhouse-client -m
ClickHouse client version 21.3.5.42 (official build).
Connecting to localhost:9000 as user default.
Connected to ClickHouse server version 21.3.5 revision 54447.

win10开发环境搭建之wsl2(Ubuntu)+Terminal+docker相关推荐

  1. Win10开发环境搭建笔记(过审阉割版)

    Win10开发环境搭建笔记 文章目录 Win10开发环境搭建笔记 系统配置: 熄屏与睡眠 手动安装 360安全卫士 - 360软件管家 激活软件(阉割) 上网软件(阉割) Xshell7 & ...

  2. 华为Atlas200DK开发从零开始1.番外篇——Win10开发环境搭建,直连Atlas200DK开发板

    目录 前言 环境搭建前准备 Windows10上的软件准备 硬件准备 Win10直连Atlas200DK 检查USB虚拟网卡状态 设置Atlas200DK的USB网卡IP(重要) 将Win10网络共享 ...

  3. 阿里云 docker php mysql_PHP开发环境02 - 阿里云Ubuntu使用Docker配置PHP环境(只限于学习)...

    视频地址 学徒卡夫 - 卡夫的Mac 04 - 阿里云Ubuntu使用Docker配置PHP环境 https://www.bilibili.com/vide... 打包镜像 上传阿里云docker镜像 ...

  4. CUDA8.0+VS2015+Win10开发环境搭建教程

    文章目录 前言 一 安装VS2015 二 安装cuda8.0 三 检测cuda是否安装成功 四 运行示例demo来进一步检测cuda安装的正确性 五 新建一个VS2015工程,运行cuda程序 六 跋 ...

  5. 角蜂鸟AI视觉套件1:开箱和开发环境搭建

    角蜂鸟开箱和开发环境搭建 1.开箱展示 图1 材料清单: 1.套件包含亚克力外壳.定制1080P摄像头及角蜂鸟AI视觉板卡(已拼装) 2.Type-C USB3.0导线1根 3.产品说明书卡片1张 电 ...

  6. ubuntu linux编译环境搭建,Ubuntu14.04开发环境搭建

    Ubuntu14.04开发环境搭建 嵌入式开发过程中很重要的一环节就是开发环境的搭建,开发环境搭建的好可以很好的提高开发效率.其中关键的一部就是挂载运行程序,对于程序的挂载运行需要借助NFS服务器,下 ...

  7. ESP8266基于WIN10+UBUNTU18.04的开发环境搭建(RTOS 3.2)(比较水)

    ESP8266基于WIN10+UBUNTU18.04的开发环境搭建(RTOS v3.2) 软件基础环境参考 硬件环境参考 软件环境安装的详细内容 软件基础环境参考 WIN10家庭版1803的64位版本 ...

  8. win10 C语言开发环境搭建

    win10 C语言开发环境搭建 一.编辑器的选择 二.windows10下的开发环境 方法一: 1.下载msys64 2.更新安装包,下载mingw64 gcc编译器 3.打开clion编辑器,配置m ...

  9. ④ESP8266 开发学习笔记_By_GYC 【Ubuntu系统下ESP8266 开发环境搭建】

    目录 ④ESP8266 开发学习笔记_By_GYC [Ubuntu系统下ESP8266 开发环境搭建] 一.安装前准备 1.乐鑫官方的ESP-IDF 编程指南 2.ESP-IDF风格的ESP8266 ...

  10. Win10+Python+Django+Nginx+MySQL开发教程及实例(1)——开发环境搭建

    Win10+Python+Django+Nginx+MySQL开发教程及实例 PaulTsao 本教程共有三篇内容: 第一篇:Win10+Python+Django+Nginx+MySQL 开发环境搭 ...

最新文章

  1. py编程技巧-1.5-如何快速找到多个字典的公共键(key)
  2. linux脚本 程序输入,[转]Linux中shell脚本如何自动输入…
  3. 皮一皮:拦着人类进化的原来是酒精?
  4. android compile使用方法,自己创建一个android studio在线依赖compile
  5. 剑指offer刷题(java)|二维数组中的查找|替换空格|leetcode刷题
  6. mysql 事件 day hour_Mysql事件调度器(Event Scheduler)
  7. Python(27)-模块
  8. 在 react 里写 vue3 ? 还写了自定义 hooks和 Hoc 构建了响应式 !
  9. av linux,AV Linux 新版发布,多少人知道
  10. go语言学习--string、int、int64互相转换,字符串的截取,数组和字符串的转换
  11. redhat java配置
  12. SQL Server 2008 R2 里迁移系统数据库的方法
  13. 理解Marx-4 马克思的第一次思想转变
  14. 苹果机装w ndows糸统,苹果电脑安装win系统一键安装教程
  15. H3CV7交换机WEB登录设备方法
  16. 时空数据库中的轨迹数据压缩
  17. 计算机动画电影英语翻译,“动画电影”英语怎么说
  18. 同步锁Synchronized和ReentrantLock区别
  19. 能拿驾照就能通过 Elastic 认证考试!
  20. 热烈庆祝《Java多线程》上线啦!

热门文章

  1. win10修改保存的git用户名和密码
  2. 【P5385】【Cnoi2019】须臾幻境(LCT)
  3. Linux下的exec系统调用详解
  4. MAC: docker compose mount permission denied 挂载失败
  5. Uboot pmic调试
  6. 巨杉数据库全新认证机制来袭!首期考试时间公布
  7. Java跨年祝福语代码_2018跨年夜精选祝福语贺词
  8. 欢迎各位大佬,哥哥姐姐 打赏,
  9. java毕业设计培训学校教学管理平台源码+lw文档+mybatis+系统+mysql数据库+调试
  10. IE无法打开网页的常见原因及解决