2015-02-08 7 views
3

Я новичок в докеров, и у меня есть проблема, когда дело доходит до контейнеров данных доставки. Хорошо, обычно мы отправляем изображения, и пользователи могут запускать, как контейнеры из этого изображения, как хотите, не так ли?экспорт и импорт докеров данных контейнеров

Теперь я хочу, чтобы отправить некоторые данные тоже - так что я сделал контейнер данных так:

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

Вы не можете экспортировать и импортировать данные в объемах, как это - объемы просто не включаются в экспорт/импорт.

Вам не нужно это делать, однако - просто введите zip или tar каталоги, на которые сопоставлены тома, и отправьте своим коллегам. Затем они могут создавать свои собственные контейнеры данных, используя эти файлы.

Вы также можете посмотреть flocker, что поможет вам переносить контейнеры и данные.

+0

Это действительно так, но было бы очень здорово, если бы вы могли просто нарисовать разные наборы данных так же просто, как изображения. Но, похоже, вам нужно использовать что-то вроде docker-backup или flocker (что кажется большой основой для очень простого использования). – KIC

+0

@KIC: Одна вещь, которую вы могли бы сделать, это написать файл Docker, который копирует данные в каталог и * впоследствии * объявляет каталог как тома. Затем вы сможете использовать это изображение для создания контейнера данных, и оно будет засеяно данными, которые были на изображении. –

0

Сначала вам нужно сделать контейнер из этого изображения. Запустить:

docker create -v /dbdata --name dbdata2 dbdata2 

Для получения более подробной информации ознакомьтесь с Creating and mounting Data Volume Containers

+0

интересно я получаю исключение на этом: ФАТА [0000] Реакция на ошибку from daemon: не указана команда – KIC

+0

Вам нужно предоставить фальшивую команду типа «/ sbin/my_init», но проблема в том, что папка/dbdata пуста после этого, поэтому данные не были вообще переданы. – KIC

0

у меня удачи в следующем Dockerfile:

from scratch 

ADD install_theGreatSoftwarePkg /install 
VOLUME /install 

Тогда я сборки и создать:

docker build -t greatSoftwareInstallImage . 
docker create -t --name=greatSoftwareMedia greatSoftwareInstallImage /bin/true 
Смежные вопросы