我是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
如何正确导出和导入数据容器?
答案 0 :(得分:0)
您需要先从此图像中创建一个容器。运行这个:
docker create -v /dbdata --name dbdata2 dbdata2
答案 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