本文主要在於最近因疫情不能外出,在家研究的一些技術積累。
主要用到的技術以及知識點:
- WSL 2
- WSL 2+Docker
- Docker+RabbitMQ
- 在ASP.NET Core中使用RabbitMQ消息隊列
一、WSL 2
1.什么是WSL 2?
WSL 2就是 適用於Linux的Windows子系統的第二代版本,全稱 Windows Subsystem for Linux 2。
2.為什么要使用WSL2?
其實這里使用WSL2目的,純碎是為了用Docker。以前微軟實現的WSL有些LInux軟件並不能完全兼容,比如Docker。WSL 2是基於Hyper-v虛擬化技術構建的和WSL 有本質上的區別。
3.啟用WSL 2
WSL2 需要 Windows 10 版本18917或更高版本,當前可以在設置->更新和安全->Windows預覽體驗計划,選擇慢速通道來獲得Windows 10 新版本,目前版本號是19041。該版本應該會在今年4月份正式推送更新。啟用過程參考微軟官方文檔:https://docs.microsoft.com/zh-cn/windows/wsl/wsl2-install。
二、WSL 2+Docker
1.啟用WSL2,還需從Windows商店獲取一個Linux 發行版,我安裝的是Ubuntu-18.04,如下圖:
然后在PowerShell中執行 wsl --set-version Ubuntu-18.04 2 命令,讓Ubuntu基於WSL2。目前默認的是 WSL。如果要讓因為安裝的發行版默認都基於WSL2,可使用下面的命令:
wsl --set-default-version 2
2.安裝Docker
因為使用的是Windows系統,所有從Docker官網下載 Docker Desktop for Windows,地址:https://hub.docker.com/editions/community/docker-ce-desktop-windows 如下圖:
安裝完后,如何將WSL2和Docker Desktop關聯起來呢?打開docker desktop 設置界面,如下圖:
通過上圖的配置,其實是Docker desktop 將Docker 安裝在 Ununtu 上了。可以通過下圖驗證:
可以看到,我在 Ubuntu中 運行docker version 命令,可以看到docker的信息。其實我並沒有直接在Ubuntu中進行安裝。
三、Docker+RabbitMQ
1、配置Docker鏡像加速
其實就是在Docker中拉取和運行RabbitMQ,在部署之前,我們需要先配置docker的鏡像加速,否則從國內網絡環境拉取Docker官方的鏡像會相當的慢。
還是打開docker desktop 設置界面,如下圖:
設置完后,Docker會自動重啟,我這里配置的是阿里雲的鏡像加速,其實有百度一下,有很多鏡像加速地址。
2、拉取RabbitMQ鏡像
在cmd或PowerShell中運行 docker pull rabbitmq: 3.8.2-management ,如下圖:
可以看到,配置了鏡像加速后,rabbitmq鏡像很快就拉取到本地了,我這里拉取的是 3.8.2版本帶管理界面的。
運行docker images 查看鏡像:
3、從RabbitMQ鏡像啟動容器
在這里,我們需要先切換到Ubuntu命令行,運行 cd /home/alvinsu 命令,進入該路徑下,因為wsl 2子系統,默認是在 mnt/c/user/alvinsu 目錄下,我第一次在該目錄下啟動Rabbitmq容器是失敗的。
切換好路徑后,運行下面的命令啟動容器:
docker run -d --name my_rabbitmq -p 5672:5672 -p 15672:15672 -v `pwd`/data:/var/lib/rabbitmq --hostname myRabbit -e RABBITMQ_DEFAULT_VHOST=my_vhost -e RABBITMQ_DEFAULT_USER= < 你的用戶名> -e RABBITMQ_DEFAULT_PASS=<你的密碼> a64a4ae7bc1f
運行完后,我們運行,docker ps 命令查看容器是否正常運行:
我們登陸 http://localhost:15672/ 可以看到下面的登陸界面,然后輸入用戶名和密碼:
------未完待續。。。