⭐⭐⭐ Spring Boot 项目实战 ⭐⭐⭐ Spring Cloud 项目实战
《Dubbo 实现原理与源码解析 —— 精品合集》 《Netty 实现原理与源码解析 —— 精品合集》
《Spring 实现原理与源码解析 —— 精品合集》 《MyBatis 实现原理与源码解析 —— 精品合集》
《Spring MVC 实现原理与源码解析 —— 精品合集》 《数据库实体设计合集》
《Spring Boot 实现原理与源码解析 —— 精品合集》 《Java 面试题 + Java 学习指南》

摘要: 原创出处 segmentfault.com/a/1190000043416307 「致知Fighting」欢迎转载,保留摘要,谢谢!


🙂🙂🙂关注**微信公众号:【芋道源码】**有福利:

  1. RocketMQ / MyCAT / Sharding-JDBC 所有源码分析文章列表
  2. RocketMQ / MyCAT / Sharding-JDBC 中文注释源码 GitHub 地址
  3. 您对于源码的疑问每条留言将得到认真回复。甚至不知道如何读源码也可以请教噢
  4. 新的源码解析文章实时收到通知。每周更新一篇左右
  5. 认真的源码交流微信群。

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

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

  • 不用依赖公司的资源,开发机资源够够的,环境完整可控,想怎么玩怎么玩,不用担心留痕也完全不会影响别人
  • 能够使用标准化的镜像屏蔽掉一切安装过程的坑,不用担心安装过程中出现的各种乱七八糟的报错
  • 虚拟环境想用即用,不想用了随时丢掉,不用操心清理起来很麻烦
  • 镜像的安装方式大大降低了安装门槛,而且在虚拟环境跑服务完全没有任何心理门槛,终于可以在本地把想安装的中间件或者服务跑全了
  • 酷,重点是酷

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

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

安装基础环境

下载 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,打开虚拟化相关配置即可。

运行你的第一个容器

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

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

这里我们启动Nginx试试。

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

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

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

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

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

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

文章目录
  1. 1. Docker 搭建的环境为什么能做到以上优势
  2. 2. 安装基础环境
    1. 2.0.1. WSL2 Linux 内核更新包
    2. 2.0.2. Docker容器运行需要依赖虚拟化
  • 3. 运行你的第一个容器