WSL2+Docker部署RabbitMQ以及在Asp.net core 中使用RabbitMQ示例(1)
本文主要在於最近因疫情不能外出,在家研究的一些技術積累。
主要用到的技術以及知識點:
- 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/ 可以看到下面的登陸介面,然後輸入使用者名稱和密碼:
------未完待續。。。