我已经阅读了 Docker 是什么,但很难找到使用 Docker 的真实场景是什么?
很高兴在这里看到您的用法。
我正在用它复制生产环境,在构建二进制文件后使用 jenkins 提交项目时,我在那里部署,启动所需的守护进程并运行集成测试,所有这些都在很短的时间内完成(需要几秒钟的时间进行集成测试) . 无需启动,内存/cpu/磁盘开销很小,这对这类事情来说非常有用。
我可以将其用于开发(只需将代码所在的卷添加到我的 git 存储库中,至少对于脚本语言来说),以使生产环境与实际编辑的代码相比,只需要 virtualbox 所需的一小部分。
还需要测试如何将一些第 3 方代码集成到修改 DB 的生产系统中。在一个容器中克隆数据库,在另一个容器中安装生产系统,启动两者并迭代集成,直到我做得很好,回到零以在几秒钟内再次尝试,并且比使用 VM + 快照更快、更便宜且更具脚本性.
还在容器上运行多个桌面浏览器实例,它们自己的插件、cookie、数据存储等是分开的。用于桌面集成的docker存储库示例是一个好的开始,但计划测试子用户以扩展这种用法。
我使用 Docker 实现了一个虚拟化构建服务器,任何用户都可以要求在我们的规范环境中运行他们的个人 git 分支的构建。
与服务器建立的每个 SSH 连接都连接到一个新容器,确保所有构建相互隔离(过去的一个主要痛点),确保容器的状态不会被破坏(因为所有更改都被隔离到单个实例),并确保即使是 Windows 等平台上无法在本地运行 Docker(以及我们的规范构建环境中的其他工具)的开发人员也能够运行构建。
我们将其用于以下用途:
我们有一个Jenkins 容器,我们可以使用它来启动我们的 Jenkins 服务器。我们使用卷挂载工作区,因此我们只需复制文件并在其他地方启动容器即可轻松迁移服务器。
我们使用Jetty容器在我们的生产和开发环境中轻松部署我们的战争文件。
我们使用一整套其他监控工具,例如我们拥有容器的Uptime,以便我们可以使用单个命令在各种主机上启动和关闭它们。
我使用 docker 在几个不同的 Linux 发行版(RHEL 4/5/6/7、Ubuntu 12.04、14.04)上构建和测试我们的软件。
Docker 可以轻松快速地创建简约且一致的构建环境。
Docker 为您提供了其他虚拟化解决方案为您提供的所需资源的一小部分的好处。