2015-02-08 113 views
3

我是docker的新手,我在運輸數據容器時遇到了問題。好的,通常我們會發送圖像,用戶可以根據需要從圖像中啓動容器,對吧?導出和導入docker數據容器

現在我想出貨的一些數據 - 所以我做了一個數據容器,以便:

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

接下來我簡單地開始了慶典並插入一些數據到我的數據容器

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

你不能像這樣卷導出和導入數據 - 卷根本不包括在導出/導入。

然而,您不需要這樣做 - 只需將卷映射到的目錄壓縮或tar即可發送給同事。然後他們可以使用這些文件創建自己的數據容器。

您可能還想看看flocker,它可以幫助您遷移容器和數據。

+0

這的確如此,但如果你能夠像圖像一樣簡單地提取不同的數據集,那將是非常棒的。但似乎你必須使用像docker-backup或flocker這樣的東西(這似乎是一個非常簡單的用例的大框架)。 – KIC 2015-02-09 10:19:54

+0

@KIC:你可以做的一件事是編寫一個Dockerfile,它將數據拷貝到一個目錄中,然後*將這個目錄聲明爲一個卷。然後,您將能夠使用該圖像創建數據容器,並將其與圖像中的數據一起播種。 – 2015-02-09 10:44:31

0

您需要首先製作一個容器。運行此:

docker create -v /dbdata --name dbdata2 dbdata2 

有關詳細信息,請Creating and mounting Data Volume Containers

+0

有趣的是,我得到這個異常:FATA [0000]錯誤響應from daemon:沒有指定命令 – KIC 2015-02-08 16:12:49

+0

您需要提供一個假命令,如「/ sbin/my_init」,但問題是,之後/ dbdata文件夾爲空,因此根本沒有數據傳輸。 – KIC 2015-02-08 17:40:59

0

我在與以下Dockerfile好運:

from scratch 

ADD install_theGreatSoftwarePkg /install 
VOLUME /install 

然後我做了建設和創造:

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