Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/docker/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Amazon ec2 Can';是否将主机文件夹装入Amazon Docker容器?_Amazon Ec2_Docker_Docker Volume - Fatal编程技术网

Amazon ec2 Can';是否将主机文件夹装入Amazon Docker容器?

Amazon ec2 Can';是否将主机文件夹装入Amazon Docker容器?,amazon-ec2,docker,docker-volume,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 使用第一个命令,我创建了一个仅数据

我正在使用一个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恢复到容器中。在这种情况下,有什么不同的方法


我可以试着用植绒机吗

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

如果要将文件夹从OSX系统装载到docker容器中,则需要在OSX系统本身上运行docker


编辑:要回答如何将数据向上移动到云中的容器的附加问题,通常有多种方法将数据移动到docker之外的云提供商本身,然后直接将其包含在容器中。要执行docker-only方法,可以执行以下操作:

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

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

事实上,我唯一得到的是AWS docker主机上my$(pwd)的副本。我不明白“在OSX系统上运行Docker”是什么意思。你是说只有虚拟箱才可以这样做吗?运行容器的docker主机需要在该主机上具有可见的文件系统,以便能够将其共享给正在运行的容器。因此,要创建这样一个基于主机的卷,并共享OSX盒中的文件,最好的方法是使用Docker beta或Virtualbox运行容器。对于高级用户,可以使用其他方法连接到主机、容器或命名卷以外的其他对象。