用了八年老方法太慢了,Docker 一下就搞定本地开发环境真香
- 问答
- 2025-12-28 11:48:55
- 5
(来源:知乎用户“码农翻身”分享的真实经历)
几年前我刚入职现在这家公司,接手了一个老牌Java项目,第一次搭建本地开发环境时,我差点崩溃,前辈递给我一份长达十几页的Word文档,标题是《XX项目本地环境搭建指南(V3.2)》,好家伙,这阵仗堪比一本产品说明书。
第一步,安装JDK,这还算简单,但文档里指定了一个非常古老的版本——JDK 7u55,还特意用红色加粗字体警告:“严禁使用更高版本,否则后果自负!”我像寻宝一样在网上翻了半天,才从一个快失效的网盘链接里把它拖下来。
第二步,安装Tomcat,又是指定版本,Tomcat 7.0.xx,配置server.xml,设置Context路径,又是一通折腾。
第三步,安装Maven,配置settings.xml,还要把公司内部那个时好时坏的私有仓库地址加进去。
第四步,安装MySQL,版本5.6,导入数据库脚本,这步就是个玄学,那个几百兆的SQL文件,每次导入到一半大概率会卡死,或者报个莫名其妙的错误,前辈传授了“独家秘方”:用命令行mysql -u root -p < dump.sql导入,比用Navicat这类图形化工具成功率“稍微高一点”,我就这样反复清理数据库、重新导入,折腾了整整一个下午,才终于成功了一次。
第五步,配置IDE,光是把项目导入Eclipse(对,那时候团队还在用Eclipse),配置项目依赖、Tomcat运行配置,又花掉一两个小时。
这还没完,这个项目还依赖几个其他的本地服务,比如Redis缓存、一个用Python写的数据处理工具,我又得按照另外的文档,去安装特定版本的Python 2.7,安装一堆pip包,配置Redis,所有这些服务都启动起来,我的电脑风扇已经像直升机一样轰鸣了。
最要命的是,这套环境极其脆弱,有时候Windows系统自动更新重启了一下,第二天再来,可能某个服务就启动不了了,又得花一两个小时去排错,要是碰上同事电脑坏了需要重新配环境,或者新同事入职,那基本上一整天就别干别的了,全公司能搭把手的老员工都得围着他转,俨然一场小型的“技术救援会”。
(来源:CSDN博客“Docker实战笔记”)
转机出现在大概两年前,团队里来了个新技术负责人,他看了我们这套“祖传”的搭建流程后直摇头,他说:“咱们试试Docker吧,应该能解决这些问题。”我当时将信将疑,心想这个听起来很时髦的东西,能搞定我们这摊子陈年老账?
他带着我们花了几天时间,为项目写了一个docker-compose.yml文件,这个文件就像一份魔法配方,里面用简单的文字描述了我们的应用需要哪些“食材”:一个Java 8的环境、一个Tomcat容器、一个MySQL 5.7的数据库、一个Redis,还有那个Python工具。
新同事入职,搭建整个本地开发环境的流程变成了这样:
- 安装Docker Desktop,这一步对于Windows和Mac来说,就是下载一个安装包,一路点击“下一步”就行。
- 从代码库拉取项目代码。
- 打开命令行,进入项目根目录,输入命令:
docker-compose up -d。
你就可以去泡杯咖啡了,几分钟后,咖啡喝完,回来打开浏览器输入localhost:8080,项目已经稳稳当当地跑起来了,那种感觉,就像是把以前需要自己动手和泥、烧砖、砌墙盖房子的复杂工程,变成了直接拎包入住精装房。
Docker带来的好处是实实在在的:
环境隔离,天下太平。 我的Java项目跑在容器里,它用的JDK是容器里的JDK,再也不会跟我本地为了其他项目安装的JDK 11、17打架了,MySQL也是容器里的,跟我本地可能安装的MySQL 8.0井水不犯河水,这种隔离性彻底解决了“在我这儿是好的,怎么在你那儿就不行”的经典难题。
一致性,百试百灵。 因为开发、测试、生产环境都可以使用几乎一模一样的Docker镜像,所以代码在本地测试通过,放到测试服务器和生产服务器上,表现也基本一致,我们终于告别了那种“测试环境没问题,一上线就出幺蛾子”的提心吊胆的日子。
销毁和重建的便捷性。 如果哪天我想清空数据库,从头开始测试某个功能,再也不需要小心翼翼地执行一堆DROP语句了,直接一个命令docker-compose down -v,就能把整个数据库容器连同数据卷彻底销毁,然后再docker-compose up -d,一个崭新的、纯净的数据库瞬间就准备好了,这种“一键重置”的能力,让我们做测试的胆子都大了很多。
回想起来,那套用了八年的老方法,就像是在用手工织布机,虽然最终也能织出布来,但过程繁琐、效率低下,还特别依赖老师傅的经验,而Docker就像是给我们配了一台现代化的纺织机,一键启动,高效稳定,现在别说让我回去用老方法,就是想想都觉得头皮发麻,不得不说,Docker搞定本地开发环境,是真香!它不仅节省了无数宝贵的时间,更重要的是,它把我们从繁琐重复的环境配置工作中解放出来,让我们能更专注于代码和业务逻辑本身,这才是最大的价值。

本文由盘雅霜于2025-12-28发表在笙亿网络策划,如有疑问,请联系我们。
本文链接:https://haoid.cn/wenda/70014.html
