云服务器价格_云数据库_云主机【优惠】最新活动-搜集站云资讯

云存储_云服务器学生_企业级

小七 141 0

功能预览:基于Docker的开发环境

vagrant1.6附带了一个新的内置提供者:Docker。Docker提供程序允许Vagrant管理在容器中运行的开发环境,而不是虚拟机。这在Linux、Mac OS X和Windows上不需要任何附加软件即可工作。Vagrant中的Docker provider使您能够非常容易地保持Vagrant和Docker的工作流程,同时获得Vagrant的所有好处:跨平台可移植性、同步文件夹、联网、provisioners、Vagrant共享、插件等。在本机不支持Linux容器的平台上,比如macosx和Windows,Vagrant会自动启动并共享一个代理虚拟机来运行Docker。这个代理VM是完全可定制的,Vagrant确保了同步文件夹和网络的正常工作。Vagrant的用户不需要担心手动执行这些操作。继续阅读以了解更多信息。»演示我们已经准备了一些演示视频下面展示了在流浪者码头提供商,然后我们进入这个博客文章的细节。我们建议按顺序观看这些视频。»码头工人,流浪汉用任何技术构建的应用程序管理环境都是最好的方法。在很多情况下,虚拟机是最好的解决方案,所以Vagrant已经使用虚拟机多年了。但是Vagrant与虚拟机根本没有联系,在某些情况下容器是最好的选择。通过Docker提供程序,Vagrant使用Docker构建的Linux容器构建开发环境。使用Vagrant进行开发的Docker用户得到了Vagrant最著名的功能:Vagrant工作流。一个在Linux、Mac或Windows上游手好闲的人,开发人员就可以获得一个一致的开发环境。除了安装Vagrant之外,没有额外的步骤,没有点击,操作系统之间没有中断。由于Vagrant的灵活性,您可以保持相同的工作流来管理不使用Docker的系统。这可能是另一个基于Linux的系统,或者甚至可能是完全不同的东西,比如基于Windows的开发环境。对于流浪者,工作流程总是一样的。»Docker主机虚拟机Linux容器不能在非Linux机器上以本机方式运行。如果您的开发人员在Mac或Windows上,他们无法在本机运行Docker容器。Vagrant检测到这些情况并自动启动Linux虚拟机来运行Docker容器。然后Vagrant与Vagrant共享所有基于Docker的开发环境的虚拟机。这意味着只要一个虚拟机,Vagrant就可以管理许多Docker环境。即使在使用Docker主机虚拟机时,Vagrant的同步文件夹、SSH和其他特性也正如您所期望的那样,在每个平台上都是一致的。如果Vagrant与Linux上的Docker一起使用,Vagrant不会自动启动虚拟机,而是在本机运行Docker。默认情况下,Vagrant启动一个安装了Docker的默认虚拟机。但是您也可以指定任意一台被管理的机器作为Docker主机。示例如下:流浪者.配置("2")执行配置|config.vm.provider"码头工人"do | d|d、 vagrant\\u vagrantfile="../docker主机/vagrantfile"结束结束通过上面的配置,Vagrant将使用Vagrantfile中指定为Docker主机的默认机器。这是非常强大的。通过这个特性,您可以让Vagrant使用Vagrant支持的任何操作系统(如Ubuntu、RHEL或CoreOS)自动管理Docker主机。如果需要,可以为每个开发环境更改这个主机VM。Vagrant是智能的:如果主机VM匹配多个Vagrant文件,则单个VM将被共享。如果不需要的话,Vagrant不会启动多个vm。因为Vagrant只是在幕后重复使用Vagrant来管理这个主机VM,所以您可以在这个VM中使用Vagrant的所有功能:供应器、同步文件夹、网络等。这是构建适合您项目的开发环境的最终灵活性。»Dockerfiles或Docker索引Vagrant中的Docker提供程序非常灵活,支持本地Dockerfiles和Docker索引中的Docker容器。这有助于迭代Dockerfile,同时也可能依赖于索引中的某些内容。例如,下面是一个可用于web开发环境的Vagrantfile:流浪者.配置("2")执行配置|配置.vm.define"应用程序"执行|应用程序|app.vm.provider应用程序"码头工人"do | d|d、 构建\ \u dir="。"d、 链接"db"结束结束配置.vm.define"db"do |应用程序|app.vm.provider应用程序"码头工人"do | d|d、 image="paintedfox/postgresql"d、结束结束结束在上面的例子中,我们从Dockerfile构建"app"环境,这个Dockerfile可能为我们的web应用程序构建容器。然后这个应用程序环境链接到"db"环境,该环境使用"paintedfox/postgresql"映像来提供postgresql数据库。在这两种情况下,同步文件夹的工作方式与您对Vagrant的预期一样,因此数据可以保存在容器外部,文件修改可以镜像回容器中。»带有SSH的容器Docker容器的一般方法是使每个容器成为单个应用程序,而不是一个完整的多进程系统。在这些情况下,SSH不可用,因此您无法利用Vagrant特性,如Vagrant SSH、provisioners等。但是,如果容器确实支持SSH,那么所有这些特性都是受支持的,并且可以工作。例如,下面的Vagrantfile使用Phusion创建的baseimage,它的行为更像一个轻量级虚拟机。流浪者.配置("2")执行配置|config.vm.provider"码头工人"do | d|d、 cmd=\/sbin/my\\u init","--启用不安全密钥"\]d、 image="phusion/baseimage"d、 有\ \u ssh=true结束config.ssh.用户名="根"config.ssh.private配置\_密钥路径="phusion.key键"结束假设你有"phusion.key键"在适当的地方,上面的操作将启动容器,等待SSH,运行任何供应器,设置任何主机名等等。另外,vagrant SSH工作得非常完美。同样,无论您是在本机运行Docker,还是通过来自Vagrant的自动管理主机VM运行Docker,所有这些功能都可以工作。»Docker特定增强功能到目前为止,在Vagrant中使用Docker的行为和工作流与在VirtualBox、VMware或EC2等云服务中使用Vagrant的行为和工作流是相同的。但是,Vagrant 1.6确实引入了一些新的命令,这些命令是专门为Docker提供程序生成的,以便为Vagrant提供一些附加的实用程序。docker logs显示容器中的日志,并允许您跟踪日志。对于单进程(非SSH)容器,这是监视进程输出的好方法。示例如下:$vagrant docker日志网站服务器正在侦听端口3000。。。GET/200 62.4毫秒获取/图像/页眉.png200 3.1毫秒获取/图像/页脚.png200 2.8毫秒docker run允许您在新容器中执行一次性命令。与同步文件夹一起,这对某些环境非常有用。例如,如果您想在Rails环境中运行测试,它可能看起来如下所示:$vagrant docker运行网络——rake测试:单位...»下一个Docker提供程序允许Vagrant使用Docker管理的Linux容器管理开发环境。这使得Vagrant的用户可以在有意义的地方使用这种开发风格,而不会牺牲任何其他开发环境的工作流。我们现在就要发布《流浪者1.6》了!功能预览即将结束,我们很高兴很快就会发布。