1. 程式人生 > >WSL2+Docker部署RabbitMQ以及在Asp.net core 中使用RabbitMQ示例(1)

WSL2+Docker部署RabbitMQ以及在Asp.net core 中使用RabbitMQ示例(1)

        本文主要在於最近因疫情不能外出,在家研究的一些技術積累。

        主要用到的技術以及知識點:

  1.  WSL 2
  2. WSL 2+Docker
  3. Docker+RabbitMQ
  4. 在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/ 可以看到下面的登陸介面,然後輸入使用者名稱和密碼:

          

 

     

          ------未完待續。。。