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/ 可以看到下面的登陆界面,然后输入用户名和密码:

------未完待续。。。

原文地址:https://www.cnblogs.com/suxinlcq/p/12317787.html

时间: 2024-10-08 17:33:43

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

ASP.NET Core消息队列RabbitMQ基础入门实战演练

一.课程介绍 人生苦短,我用.NET Core!消息队列RabbitMQ大家相比都不陌生,本次分享课程阿笨将给大家分享一下在一般项目中99%都会用到的消息队列MQ的一个实战业务运用场景.本次分享课程不是零基础教学,课程内容的侧重点是讲解的RabbitMQ的最实用.最简单的实战运用场景:Publish/Subscrib(发布/订阅)模式,发送端发送消息,单个接收端接收处理消息. 学完本次"是猴子都看的懂的消息队列RabbitMQ实战课程"后,阿笨带直接让你也能如此优雅简单的上手使用Rab

如何在ASP.NET Core中实现一个基础的身份认证

注:本文提到的代码示例下载地址> How to achieve a basic authorization in ASP.NET Core 如何在ASP.NET Core中实现一个基础的身份认证 ASP.NET终于可以跨平台了,但是不是我们常用的ASP.NET, 而是叫一个ASP.NET Core的新平台,他可以跨Windows, Linux, OS X等平台来部署你的web应用程序,你可以理解为,这个框架就是ASP.NET的下一个版本,相对于传统ASP.NET程序,它还是有一些不同的地方的,比

在ASP.NET Core中使用Angular2,以及与Angular2的Token base身份认证

注:下载本文提到的完整代码示例请访问:How to authorization Angular 2 app with asp.net core web api 在ASP.NET Core中使用Angular2,以及与Angular2的Token base身份认证 Angular2是对Angular1的一次彻底的,破坏性的更新. 相对于Angular1.x,借用某果的广告语,唯一的不同,就是处处都不同. 首先,推荐的语言已经不再是Javascript,取而代之的TypeScript,(TypeSc

Asp.Net Core中利用Seq组件展示结构化日志功能

在一次.Net Core小项目的开发中,掌握的不够深入,对日志记录并没有好好利用,以至于一出现异常问题,都得跑动服务器上查看,那时一度怀疑自己肯定没学好,不然这一块日志不可能需要自己扒服务器日志来查看,果然,很多东西没掌握,至此,花点时间看了下日志的相关操作.利用日志服务来查看日志数据. 本文地址:https://www.cnblogs.com/CKExp/p/9246788.html 本文Demo的地址:https://gitee.com/530521314/LogPanel.git 一.日志

ASP.NET Core中Middleware的使用

ASP.NET 5中Middleware的基本用法 在ASP.NET 5里面引入了OWIN的概念,大致意思是将网站部署.服务器.中间组件以及应用分离开,这里提到的Middleware就是中间组件. 这里引用asp.net网站的介绍图 Middleware的作用有点类似于httpmodule,服务器接收到的请求都会传递到各个Middleware,多个Middleware形成一个处理管道. 由于不针对于特定的请求,所以Middleware的执行范围是在Application之外,这种模式很适合处理日

如何在ASP.NET Core中自定义Azure Storage File Provider

文章标题:如何在ASP.NET Core中自定义Azure Storage File Provider作者:Lamond Lu地址:https://www.cnblogs.com/lwqlun/p/10406566.html项目源代码: https://github.com/lamondlu/AzureFileProvider 背景# ASP.NET Core是一个扩展性非常高的框架,开发人员可以根据自己的需求扩展出想要的功能.File Provider是ASP.NET Core中的一个重要组件

Asp.net core中的websocket

Websocket是html5后的产物,对于asp.net core中也得到了支持,首先在NuGet中添加Microsoft.AspNetCore.WebSockets的引用(现在是1.0.1版本,2017年3月7日发布的). 首先在Configure中添加中间件 //添加websocket中间件 app.UseWebSockets(); 接下来就要定义自己处理websocket的中间件了,代码如下: using Microsoft.AspNetCore.Http; using System;

ASP.NET Core中的依赖注入(5): ServiceProvider实现揭秘 【解读ServiceCallSite 】

通过上一篇的介绍我们应该对实现在ServiceProvider的总体设计有了一个大致的了解,但是我们刻意回避一个重要的话题,即服务实例最终究竟是采用何种方式提供出来的.ServiceProvider最终采用何种方式提供我们所需的服务实例取决于最终选择了怎样的ServiceCallSite,而服务注册是采用的ServiceDescriptor有决定了ServiceCallSite类型的选择.我们将众多不同类型的ServiceCallSite大体分成两组,一组用来创建最终的服务实例,另一类则与生命周

如何在ASP.NET Core中应用Entity Framework

注:本文提到的代码示例下载地址> How to using Entity Framework DB first in ASP.NET Core 如何在ASP.NET Core中应用Entity Framework 首先为大家提醒一点,.NET Core和经典.NET Framework的Library是不通用的,包括Entity Framework! 哪怎么办? 别急,微软为.NET Core发布了.NET Core版本的Entity Framework,具体配置方法与经典.NET Framew