无法将HOST文件夹挂载到Amazon Docker Container?

时间:2016-06-24 17:58:55

标签: amazon-ec2 docker docker-volume

我正在使用EC2实例来运行docker。从我使用OSX的本地机器,我使用docker机器来创建容器和卷。但是,当我尝试将本地文件夹挂载到任何容器时是不可能的。

docker create -v /data --name data-only-container ubuntu /bin/true
docker run -it --volumes-from data-only-container -v $(pwd)/data:/backup ubuntu bash

使用第一个命令我创建一个仅数据容器,并且我正在执行第二个命令以进入一个容器,该容器应该具有仅数据容器卷和我正在尝试安装的容器,但是当访问它时文件夹/备份为空

我做错了什么?

编辑: 我正在尝试安装主机文件夹,以便将备份数据从我的PC恢复到容器。在那种情况下,什么是不同的方法?

我要尝试使用Flocker吗?

1 个答案:

答案 0 :(得分:2)

使用-v /path/to/dir:/container/mnt挂载的主机卷从容器内的docker主机安装目录。在OSX系统上运行此命令时,$(pwd)/data将引用本地计算机上Docker主机(EC2实例)上不存在的目录。如果您登录EC2实例,您可能会在那里找到$(pwd)/data目录并清空。

如果要将OSX系统中的文件夹挂载到docker容器中,则需要在OSX系统上运行Docker。

编辑:要回答有关如何将数据移动到云中的容器的附加问题,通常有办法将数据移动到Docker之外的云提供程序本身,然后将其直接包含在容器中。要做一个仅限泊坞的方法,你可以做类似的事情:

tar -cC /source . | \
docker run --rm -i -v app-data:/target busybox \
  /bin/sh -c "tar -xC /target"

这会将您的数据通过管道上的tar上传到docker主机上的命名卷中。然后,您可以在任何其他容器中包含命名的“app-data”卷。如果您需要使用较大的数据集多次执行此操作,则创建rsync容器会更有效。