使用docker-compose

时间:2015-10-25 16:07:38

标签: docker boot2docker docker-compose docker-machine

我有一个带有

的docker-container.yml
mycontainer:
  image: someimage
  volumes:
   - ./backup:/backup

在真正的Linux docker上安装,它会使主机泊坞机./backup出现在容器中的/backup

使用docker-compose和docker-machine,虽然有3台机器

  1. 主持人
  2. 使用docker运行linux的VM
  3. 容器
  4. 我遇到的问题是我试图从运行docker的机器的POV编写一些脚本。但是因为docker-compose + docker-machine没有将VM ./backup挂载到容器中,所以我的脚本不起作用。

    有没有办法让./backup出现在虚拟机中。任

    (a)它以某种方式存在于所有3台机器中,或者(b)它只在VM和容器中以便与生产相匹配。

    如果不清楚(确定这会使其不太清楚),那么总有3台机器

    在开发

    [my laptop] -> [vm running docker] -> [container]
    

    生产中

    [my laptop] -> [remote machine running docker] -> [container]
    

    我正在尝试编写一些在笔记本电脑上运行的维护脚本。他们ssh到docker机器(本地VM或远程)并做一些事情。但他们需要的东西看起来是一样的(我认为这是码头工人的观点。它总是应该是相同的)。但在这种情况下,它不是

    在开始运行docker-compose up -d我得到

    [my laptop] -> [thing running docker] -> [container] 
        |                                        |
    (./backup) ------------------------------>(/backup)
    

    在生产中也运行docker-compose up -d我得

    [my laptop] -> [thing running docker] -> [container] 
                         |                       |
                     (./backup) ------------->(/backup)
    

    我需要Dev才能成为这个

    [my laptop] -> [thing running docker] -> [container] 
                         |                       |
                     (./backup) ------------->(/backup)
    

    或者这个

    [my laptop] -> [thing running docker] -> [container] 
        |                |                       |
    (./backup) ------>(./backup) ------------>(/backup)
    

2 个答案:

答案 0 :(得分:1)

如果您将docker-machine与virtualebox一起使用,则应将您的主目录挂载为VM中的共享文件夹。如果您的主目录中没有./backup,则需要添加另一个共享文件夹,以便机器可以正常查看。

答案 1 :(得分:0)

您要做的就是在启动docker-machine之前:

export VIRTUALBOX_SHARE_FOLDER="$PWD:$PWD"