我正在用几种不同的语言/技术进行编码。老实说,我只是在胡闹,玩金刚,node.js,红宝石路轨,等等。
但现在我也想加入码头工人的行列,但我不知道会有什么好处,也不知道我是否应该努力。
在开发环境中使用Docker的最佳实践是什么?我是否为我接触过的每种语言或技术设置了一个单独的容器?或者容器过分了,我应该设置一个VM ( Windows主机上的Linux)来完成所有的开发?
你们是如何使用Docker进行开发工作的?
发布于 2016-01-07 17:51:59
您肯定应该继续这样做,这是最好的方法,即使您在容器之间共享卷,并且避免设置不同的VM,如果您的工作站中有必要的硬件-电源,并且不需要在不同的工作站上分配您的环境。
在我目前的公司里,我是负责建立所有开发环境的人。我们有几个单块应用程序,但我们正在快速地将多个功能分离成单独的微服务。
我们是如何开始管理的--也就是说,每个微服务代码存储库都拥有所有独立的内容,即作为对接者编写的文件,以及用于自动化、测试等的makefile。
开发人员只需在Mac上安装停靠工具箱,克隆回购程序并输入make即可。这将启动码头与容器之间的所有链接和所有必要的比特和片段(DBs、缓存、队列)之间的链接。
直接链接到Makefile:https://github.com/marclop/prometheus-demo/blob/master/Makefile。
另外,如果您想避免设置所有的容器,那么还有几种选择,例如Phusion的一个:https://github.com/phusion/baseimage-docker。
我希望这能回答你的问题。
发布于 2016-01-07 17:26:56
您不应该在您的开发环境中使用Docker,如果您想要完全分离的话,应该使用常规的vm,比如VirtualBox。Docker更适合于在某个地方交付已完成的代码,例如用于准备环境。原因是,除非您处理共享卷,否则Docker容器对于持久化状态并不理想。
发布于 2016-01-07 17:47:47
这一问题的答案本质上是主观的,并与你喜欢如何进行开发有关。它还将与您希望在测试场景中部署这些程序的方式相关联。
Jonas是正确的,Docker的主要目的是将完成的代码提供给一个阶段/生产环境,但是我已经将它用于开发,实际上,根据您的情况,它可能更好。
让我们假设您有一个虚拟服务器,并且您希望将您为您的环境所使用的空间最小化。Docker的全部目的是存储Linux内核(和基本软件)的一个副本,并在每个docker实例中重用它们。您还可以通过在Linux之上运行Docker容器来最小化用于运行基本Linux“部件”的RAM和CPU使用。
使用Docker最有说服力的原因可能是为了更容易地找到您想要的基本设置。您可以使用大量预先制作的坞容器来构建您的测试/开发环境,并且在您完成到另一台机器之后部署您的代码要比使用VMWare或Virtual容易得多(是的,您可以创建一个OVF,这样可以工作,但是docker要容易得多)。
在玩这个游戏时,我亲自使用了Project,这为在VMWare环境中设置基本Docker提供了一种非常简单的方法。
https://blogs.vmware.com/cloudnative/introducing-photon/
我最后一次使用Docker是为了在我的一个类中执行一项任务,在其中一个本地实例中,我必须在其中一个类中使用MongoDB。在Windows或Linux上设置MongoDB本来都是微不足道的,但我觉得学习Docker的机会太大了,不能错过。最后,我觉得和Docker在一起更舒服:)
有一些备份容器的方法,可以(正如Jonas指出的那样)变得有点混乱,但它并不超出一个技术合理的个体的范围。
不管你走哪条路,祝你好运!同样,这两种方法显然都会奏效--我认为这两种方法都没有本质上的问题。
https://stackoverflow.com/questions/34661394
复制相似问题