使用 Docker 进行开发的 3 个步骤

目前还没有读者喜欢这篇文章。
Shipping containers stacked

维基共享资源

您是否有兴趣使用 Docker 来改变您开发和打包 Linux 应用程序的方式?您并不孤单。

简而言之,Docker 是传统虚拟化的低开销替代方案。它不是提供一直到硬件级别的真正虚拟化环境,而是为您的应用程序提供一个沙盒环境,使其仅使用运行所需的必要库和操作系统组件即可运行。

从开发人员的角度来看,这非常棒,原因有几个。

首先,您在本地进行的任何开发都可以很好地近似于您的应用程序将要部署的实际生产环境。有些人可能还记得 Java 曾经宣扬的“一次编写,到处运行”的座右铭——虽然“到处运行”并不完全正确,但 Docker 确实可以消除环境差异造成的一些麻烦。

其次,这意味着您可以比在本地运行虚拟机的情况下更快地创建这个自定义环境。Docker 容器通常可以在几秒钟内启动,从而使即时测试变得更加容易。

第三,Docker 为您的代码运行创建了一个软件定义的环境。您的环境可以进行版本控制、修改、分支和根据需要回滚。

这一切听起来不错吗?太好了,让我们开始吧。

设置 Docker 的开发环境

我将跳过强制性的安装说明和入门教程,因为已经有很多很好的资源可以参考。有关入门的更多信息,请查看 Docker 入门 指南。

当您学习 Docker 时,您无疑会花费大量时间编写和编辑 Dockerfile。就我个人而言,我几乎所有事情都在普通的文本编辑器中完成。在命令行中,我是 VIM 的粉丝。如果您使用 VIM 进行编辑,请务必找到并安装 Dockerfile 的语法文件,以便更轻松地进行编辑。我喜欢 Eugene Kalinin 的这个文件,但还有其他文件。其他文本编辑器也提供了类似的语法和自动完成文件,因此请花时间找到适合您的文件。

如果您使用功能更全面的集成开发环境怎么办?您也有选择。Eclipse 具有 集成的 Docker 工具,使在该平台上进行开发更容易,并且它可以与其他工具很好地集成,例如,如果您正在进行 JBOSS 开发

我还发现一些默认的 Docker 命令有点笨拙,所以我为其中一些命令设置了别名,以便在命令行中更轻松地操作。例如,我在我的 .bashrc 文件中设置了这个,以便更容易找到和使用容器 ID

alias dl="docker ps -l -q"

有关其他一些很棒的别名建议,请查看 此列表

找到合适的基礎镜像来使用

Docker 容器就像它们自己的小型操作系统——事实上,它们就是!

如果您在生产环境中使用 Docker,那么信任您容器所基于的基础镜像非常重要。如果您不能信任每个修改您容器的实体并验证该信任链,您就不能确定您的容器没有恶意代码。

话虽如此,对于学习和进行简单的开发,有很多基础镜像可以帮助您入门。使用 Java?这里有大量 现成的基于 Java 的 镜像。Flask 和 Python 怎么样,或者 Ruby on Rails 呢?您说出一个技术栈,可能已经有一个现成的容器供您使用。

但是等等。将任何容器追溯到其原始基础镜像,您可能会找到一个熟悉的操作系统,无论是 Fedora 还是 Ubuntu 或其他操作系统。确保您选择的基础镜像具有您需要的功能和软件包,并且您能够舒适地配置它。

当然,Docker Hub 是一个找到适合您需求的镜像的地方,但这远非唯一的地方。

找到合适的学习资源

Docker 有一个很棒的 文档 部分,但迟早,您会遇到一个更容易在其他地方找到答案的问题,或者您可能需要一些帮助。

Freenode IRC 上的 #docker 频道是寻求帮助的好地方,但这并不是唯一的地方。Stack Overflow 也有一个相当大的 Docker 社区,并且那里有大量由社区编写的优秀教程。

您还有其他问题吗?您建议其他人从哪里学习 Docker?

User profile image.
Jason 在 2013 年至 2022 年期间是 Opensource.com 的工作人员和红帽员工。此个人资料包含他当时的与工作相关的文章。其他贡献可以在他的个人帐户中找到。

评论已关闭。

Creative Commons License本作品根据知识共享署名-相同方式共享 4.0 国际许可协议获得许可。
© . All rights reserved.