帮酷LOGO
  • 显示原文与译文双语对照的内容
文章标签:Wrapping  Boot2docker  portable  引导  BOO  Vagrant  WRAP  
Vagrant wrapping boot2docker for truly portable development

  • 源代码名称:vagrant-boot2docker
  • 源代码网址:http://www.github.com/silinternational/vagrant-boot2docker
  • vagrant-boot2docker源代码文档
  • vagrant-boot2docker源代码下载
  • Git URL:
    git://www.github.com/silinternational/vagrant-boot2docker.git
  • Git Clone代码到本地:
    git clone http://www.github.com/silinternational/vagrant-boot2docker
  • Subversion代码到本地:
    $ svn co --depth empty http://www.github.com/silinternational/vagrant-boot2docker
    Checked out revision 1.
    $ cd repo
    $ svn up trunk
  • silinternational/vagrant-boot2docker

    提供用于提供boot2docker框。使用翻译的权限配置共享文件夹。安装 docker-compose 以及运行 docker-compose 以启动容器的Vagrantfile 。

    目的是提供一个 Vagrantfile,可以以将它的放入现有项目中,最小化以配置网络和同步文件夹。

    这个Vagrantfile是这个项目中唯一显著的对象;它的他文件只是一个示例应用程序作为示例应用程序。

    请注意,vagrant 1.7.3需要使用 VirtualBox 5.0.

    演示使用

    只需克隆这里存储库并运行:

    vagrant up

    然后,你可以连接到 http://192.168.70.249的容器服务器。可以编辑 data/index.html 并查看在页面重新加载后反映的更改。

    在工作目录中,Vagrantfile同步 data//data,将本地目录的所有权和组权限双向转换为vagrant中的33.33

    未翻译权限的工作目录也会在框中同步到 /vagrant

    然后,在Vagrantfile中运行 docker-compose在示例 docker-compose.yml 中运行两个容器: 第一个卷容器将 /data 中的映射到容器中的/usr/local/apache2/htdocs/ ;第二个容器容器从第一个容器容器获取卷。

    由于文件所有权被翻译成,当容器将它的卷映射到,框时,会看到这些翻译的属性。 在 web server容器中,33是 www-data的UID和 GID,因这里无论平台或者 文件系统 是什么,都可以以编辑数据文件。

    的基本原理

    尽管在web开发和操作中,Docker 提供了良好的封装,但是,在web开发中,编辑文件并立即看到更改会立即生效,这是很有用的。 使用映射到本地文件夹的卷使用 Docker 可以以轻松地完成这个操作。

    然而,出现两个问题:首先,Docker 只在Linux上运行,第二个文件夹的文件权限( 所有权和模式) 与容器中的。

    为了允许不同的开发环境,可以使用Linux虚拟机运行 Docker,这是在VirtualBox中运行的 boot2docker映像。

    to项目包括了虚拟机的ISO,并为不同平台的安装程序提供了一些配置虚拟机的安装程序。 不幸的是,( 至少在这个Vagrantfile被写的时候) 在 Windows 上安装很容易,被视为不必要的,没有一个安全的方法来修复权限。

    既然VirtualBox拥有共享文件夹和翻译权限的能力,它就成了配置它的一个问题了,这是一个 Vagrant admirable admirable admirable 。 Vagrant还可以配置它创建的虚拟机,因此boot2docker缺少的特性可能被添加。

    结果是一个解决方案,它将在所有支持,的平台上正常工作,并且相对轻量级。

    特性

    在每个 vagrant reload 上安装并运行 docker 。 如果不想使用 docker,只需更改 Vagrantfile,使它的不运行。

    如果在本地安装了 Docker 命令行客户机,则直接连接到虚拟机中运行的Docker 守护进程比使用 vagrant ssh 更容易。 在第一个 vagrant up 之后,将打印一些建议的导出行,你可以以将它的粘贴到 shell 中以设置所需的环境变量。 尝试它们直到一个工作。

    运行在虚拟机中的Docker 守护进程将保存你构建或者提取的映像,但如果使用 vagrant destroyvagrant up 持续地删除虚拟机,则可能会在你的环境中快速地定义并重新构建虚拟机。 if被定义为box文件夹,Vagrantfile将在引导( 使用 docker load ) 中使用该文件夹,并将tar存档从引导服务器的镜像存储加载到启动映像,然后将运行的映像保存为文件。 这样可以避免从网络中继续提取图像,从而加快初始引导时间。

    注释

    Windows 行结束可能是问题;VirtualBox可以同步文件夹和转换权限,但是文件中的数据仍然需要正确。

    实现细节

    Boot2docker被设计成只读图像( 尽管 Docker 和ssh密钥有一些持久存储),所以允许Vagrant添加一个键,允许 vagrant ssh 正常工作,Vagrantfile在启动时执行许多绑定挂载。

    安装 python 和pip来让docker组成。 Boot2docker基于 Tinycore Linux插件,所以在第一次引导时下载并安装了包,然后从持久存储中重新安装。 Pip在每次引导时更新,以获得最新版本的docker组合。



    文章标签:BOO  WRAP  引导  Vagrant  portable  Wrapping  Boot2docker  

    Copyright © 2011 HelpLib All rights reserved.    知识分享协议 京ICP备05059198号-3  |  如果智培  |  酷兔英语