导出和导入docker数据容器

时间:2015-02-08 15:28:10

标签: docker

我是docker的新手,在运送数据容器方面遇到了问题。好吧,通常我们发送图像,用户可以像这个图像中的容器一样启动,对吧?

现在我也想发布一些数据 - 所以我创建了一个数据容器:

docker create -v /dbdata --name dbdata phusion/baseimage

接下来,我只是启动了一个bash并将一些数据插入到我的数据容器中

docker run --volumes-from dbdata -i -t phusion/baseimage /bin/bash
echo "foo" > /dbdata/bar.txt
exit

现在我想让我的团队成员使用相同的数据(离线),所以我想发送"发送"我的数据容器给他们。因此我使用了

docker export dbdata > /tmp/cool_data.tar

但是当我用

重新导入时
cat /tmp/data.tar | sudo docker import - dbdata2

我不能用这个"容器"因为它似乎是一个图像

docker run --volumes-from dbdata2 -i -t phusion/baseimage /bin/bash
FATA[0000] Error response from daemon: Container dbdata2 not found. Impossible to mount its volumes 

如何正确导出和导入数据容器?

3 个答案:

答案 0 :(得分:0)

您需要先从此图像中创建一个容器。运行这个:

docker create -v /dbdata --name dbdata2 dbdata2

有关详细信息,请查看Creating and mounting Data Volume Containers

答案 1 :(得分:0)

您无法在此类卷中导出和导入数据 - 卷只是不包含在导出/导入中。

然而,您不需要这样做 - 只需压缩或tar tar卷映射到的目录并发送给您的同事。然后,他们可以使用这些文件创建自己的数据容器。

您可能还想查看flocker,它可以帮助您迁移容器和数据。

答案 2 :(得分:0)

我对以下Dockerfile运气不错:

from scratch

ADD install_theGreatSoftwarePkg /install
VOLUME /install

然后我做了一个构建并创建:

docker build -t greatSoftwareInstallImage .
docker create -t --name=greatSoftwareMedia greatSoftwareInstallImage /bin/true