如何利用 Docker 让你的生活更轻松

2025-06-07

如何利用 Docker 让你的生活更轻松

Docker 于 2013 年问世,其优势显而易见。“与主机和其他应用完全隔离”、“完美可复现的环境”以及“在我的机器上运行”等宣传终于成为过去。考虑到我大部分时间都在排查问题,如何让开发环境中运行良好的代码在生产环境中正常运行,Docker 似乎成了一剂良药。

然而,让我迟迟没有采用它的原因,大概是它太难理解了,大概持续了五年。我不喜欢使用自己不理解的技术栈,因为当事情进展不顺利时,这只会成为我日后不得不排查的问题。尽管我需要多做一些工作来配置最终运行代码的服务器,有时还会遇到一些棘手的配置问题,但至少我之前遇到过很多类似的问题,并且知道如何解决它们。

如今,Docker 已如此普及,以至于很难避免使用它。Github 上几乎每个项目都有 Docker 的官方文档Dockerfilereadme使用说明。幸运的是,在我看来,它已经开始兑现承诺,真正让开发者的生活变得更轻松。我还没有完全“全身心投入”于 Docker,但它确实在某些方面提升了我的幸福感和工作效率。

我最喜爱的 Docker

有些技术栈的设置过程非常繁琐,比如换电脑的时候。这类技术栈通常包括关系型数据库(MySQL 和 Postgres),以及一些通常设置过程非常繁琐的应用程序(比如自托管的 Gitlab)。

您在电脑上安装 MySQL 时遇到过多少次问题?尤其是在 Linux 上?我似乎总是为此而苦恼。在 Ubuntu 中添加正确的软件包仓库,顺利完成 CLI 安装,然后启动它。所有这些不同的配置方式都可能导致许多事情在初始安装和启动时变得混乱。

或者,我可以这样做,并准备好一个功能齐全的 MySQL 服务器!

docker run --name mysql-5 -p 3306:3306 -e MYSQL_ROOT_PASSWORD=my-secret-pw -d mysql:5

从那里开始,我只需使用我最喜欢的 MySQL 编辑器(Sequel Pro、HeidiSQL 等),就可以连接我机器上任何需要 MySQL 的服务(无论是否使用 Docker),并根据需要使用它。而且,我可以启动任意数量的 MySQL 服务(或我的硬件允许的数量),只需更改这些新实例上的公开端口(例如 3307、3308 等),这样就不会发生任何冲突。

另外,我喜欢在本地机器上测试邮件,而不依赖外部服务来处理。相反,我可以使用一个名为Mailhog的快速 SMTP 捕获服务,这样我就能实际看到本地测试邮件的输出!

docker run --name my-mailhog -p 1025:1025 -p 8025:8025 -d mailhog/mailhog

这个命令更简单。只需提供一个你选择的名称来标识容器、你想要公开的端口(在本例中,1025 表示 SMTP 端口,8025 表示用于查看已捕获邮件的 Web 门户)以及 Docker Hub 中的镜像名称 ( mailhog/mailhog)。此命令将启动服务器并允许你查看已捕获的邮件。非常简单。

所以,我可以将 Docker 用于我的主要应用程序代码库,但我可以继续使用 NodeJS,甚至不必担心将其 Docker 化。此外,这些示例不一定对部署到生产环境有帮助(Docker 当然可以,只要具备正确的知识),它们只是为了帮助演示如何更轻松地搭建一个良好的开发环境。

最后的想法

如果你觉得难以入门和理解 Docker,或者感觉自己被炒作的浪潮抛在身后,别担心。你可以让 Docker 为你服务,而不必放弃虚拟机和任何非完全容器化的东西。我找到了一个目前对我来说非常有效的折中方案。随着时间的推移,我相信我会越来越多地采用它,因为它是合理的。我希望你也能如此。

文章来源:https://dev.to/jcs224/how-to-actually-make-your-life-easier-with-docker-hjo
PREV
16 条关于在科技领域打造成功职业生涯的建议 10 条针对有抱负的开发人员的实用技巧 6 条针对早期职业开发人员的实用技巧
NEXT
学习如何学习:CS版