2

我有一个 docker-container.yml

mycontainer:
  image: someimage
  volumes:
   - ./backup:/backup

在真正的 linux docker 安装上,这将使主机 docker 机器./backup出现在/backup容器中

尽管有 3 台机器,但使用 docker-compose 和 docker-machine

  1. 主人
  2. 使用 docker 运行 linux 的虚拟机
  3. 容器

我遇到的问题是我试图从运行 docker 的机器的 POV 中编写一些脚本。但是因为 docker-compose + docker-machine 没有将虚拟机 ./backup 挂载到容器中,所以我的脚本不起作用。

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

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

如果不清楚(我相信这会让事情变得不那么清楚)总是有 3 台机器

在开发中

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

生产中

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

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

在开发运行中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)
4

2 回答 2

1

如果您使用docker-machinevirtualebox,它应该将您的主目录挂载为 VM 中的共享文件夹。如果./backup不在您的主目录中,您需要添加另一个共享文件夹,以便机器可以正确看到它。

于 2015-10-25T19:45:44.853 回答
0

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

export VIRTUALBOX_SHARE_FOLDER="$PWD:$PWD"
于 2019-02-02T12:03:50.173 回答