又炫了一把,用 Docker 搭建更酷的本地开发环境

点击上方“芋道源码”,选择“设为星标

管她前浪,还是后浪?

能浪的浪,才是好浪!

每天 10:33 更新文章,每天掉亿点点头发...

源码精品专栏

 

来源:segmentfault.com/a

/1190000043416307


以前要在本地跑一些有意思的工程和实验,都需要通过在本地装上一大堆软件来实现。最近发现有一种更酷的方式:Docker。

用Docker在本地搭建开发环境有一系列显而易见的优势:

  • 不用依赖公司的资源,开发机资源够够的,环境完整可控,想怎么玩怎么玩,不用担心留痕也完全不会影响别人

  • 能够使用标准化的镜像屏蔽掉一切安装过程的坑,不用担心安装过程中出现的各种乱七八糟的报错

  • 虚拟环境想用即用,不想用了随时丢掉,不用操心清理起来很麻烦

  • 镜像的安装方式大大降低了安装门槛,而且在虚拟环境跑服务完全没有任何心理门槛,终于可以在本地把想安装的中间件或者服务跑全了

  • 酷,重点是酷

Docker 搭建的环境为什么能做到以上优势

道理其实很简单,使用 Docker Desktop 在本地起一个虚拟机,然后在虚拟机里跑Docker。这样所有的安装和启停变更都发生在虚拟环境里,自然而然的就带来了以上优势。

基于 Spring Boot + MyBatis Plus + Vue & Element 实现的后台管理系统 + 用户小程序,支持 RBAC 动态权限、多租户、数据权限、工作流、三方登录、支付、短信、商城等功能

  • 项目地址:https://github.com/YunaiV/ruoyi-vue-pro

  • 视频教程:https://doc.iocoder.cn/video/

安装基础环境

下载 Docker Desktop,安装过程踩了两个雷:

WSL2 Linux 内核更新包
Docker Desktop requires a newer WSL kernel version

这个报错是字面意思,需要更新内核版本。下载 WSL2 Linux 内核更新包即可:

  • https://wslstorestorage.blob.core.windows.net/wslblob/wsl_update_x64.msi

Docker容器运行需要依赖虚拟化
Hardware assisted virtualization and data execution protection must be enabled in the BIOS

这个报错是因为BIOS里没有把对虚拟化的支持打开,重启进入BIOS,打开虚拟化相关配置即可。

基于 Spring Cloud Alibaba + Gateway + Nacos + RocketMQ + Vue & Element 实现的后台管理系统 + 用户小程序,支持 RBAC 动态权限、多租户、数据权限、工作流、三方登录、支付、短信、商城等功能

  • 项目地址:https://github.com/YunaiV/yudao-cloud

  • 视频教程:https://doc.iocoder.cn/video/

运行你的第一个容器

安装完毕之后就可以用了。Docker Desktop 的首页非常简洁明了。

88c3d14ba9d042be77bfa394532c99c6.png

Guides里有三个示例,大大的 Run,点下去就可以快捷的体验本地服务了。

这里我们启动Nginx试试。

1daa5f94967dcca80cd071dd3ea291b3.png

切换到Terminal Tab可以对容器发出指令

18e98e75e212b273e687fbe99d535c9f.png

这种起服务的方式,我觉得比以前挨个安装软件的方式确实爽太多了。

至此 Docker 所需的环境已经搭建成功了,但是距离我们搭建一个很酷的本地开发环境还差得远。因为还有一连串的问题等着我们。

比如我们再深入玩一下刚才启动的 Nginx 容器,就会发现有很多指令找不到,这对于我们在本地调试是不可接受的。

5ed6bb63ccdf22f3f51b129d525006ef.png

再比如需要部署到 Nginx 的制品如何与本地文件映射,本地启动多个依赖服务时网络与端口如何管理。以及针对不同的本地开发所需要依赖的资源和服务,可能需要通过自行build docker file的方式才能让他们在本地用起来更加丝滑和酷炫。这些问题,我们留到后文再续。

你在本地做开发的时候,是怎么搭建和管理自己的环境呢?欢迎留言讨论。



欢迎加入我的知识星球,一起探讨架构,交流源码。加入方式,长按下方二维码噢

9710018352f637739bad9aec215c6724.png

已在知识星球更新源码解析如下:

27db2ecd5ba823ec03b8d08027da9017.jpeg

862e15427b4ede551965839d0aee72fc.jpeg

d6b871dc47f573bfc5952d2010782dab.jpeg

c3763f0312f3e5474ba9414cd8777385.jpeg

最近更新《芋道 SpringBoot 2.X 入门》系列,已经 101 余篇,覆盖了 MyBatis、Redis、MongoDB、ES、分库分表、读写分离、SpringMVC、Webflux、权限、WebSocket、Dubbo、RabbitMQ、RocketMQ、Kafka、性能测试等等内容。

提供近 3W 行代码的 SpringBoot 示例,以及超 4W 行代码的电商微服务项目。

获取方式:点“在看”,关注公众号并回复 666 领取,更多内容陆续奉上。

文章有帮助的话,在看,转发吧。
谢谢支持哟 (*^__^*)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值