导出和导入 docker 个数据容器

export and import docker data containers

我是 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

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

docker export dbdata > /tmp/cool_data.tar

但是当我用

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

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

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 

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

你需要先用这张图片制作一个容器。 运行 这个:

docker create -v /dbdata --name dbdata2 dbdata2

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

您不能像这样以卷的形式导出和导入数据 - export/import 中根本不包含卷。

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

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

我对以下 Dockerfile 很满意:

from scratch

ADD install_theGreatSoftwarePkg /install
VOLUME /install

然后我进行构建并创建:

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