2016-08-18 2 views
0

Я создаю изображение докера с помощью базы данных SQLLight, используя Jenkins, и я считаю, что хочу создать базу данных из файла Docker и сохранить ее в том, чтобы я мог экспортировать том отдельно. Я начинаю строить, как: docker build -t FOO ., но когда я извлечь данные об объеме, как:Как получить объемы докеров из недавно созданного изображения?

docker run --rm --volumes-from FOO -v $(pwd):/backup busybox tar cvf /backup/backup.tar /opt/webapp` 

Я получаю ошибку: No such container: FOO

Это, конечно, имеет смысл, потому что FOO не является контейнер этого изображения. Но как мне получить идентификатор контейнера? Я не могу просто читать любые выходы Docker, потому что я участвую в этом в сборке Jenkins.

У меня такое чувство, что я ошибаюсь. Но каков правильный путь?

+0

Вы хотите извлечь изображение или данные, созданные контейнером этого изображения? – CMPS

+0

Я хочу извлечь данные тома, сгенерированного в файле Docker – jonalv

ответ

1

Вам необходимо запустить контейнер на основе FOO изображения:

docker run -d --name BAR FOO 

И тогда вы можете получить доступ к тома:

docker run --rm --volumes-from BAR ... 
+0

. Я думаю, что я должен делать «докерный останов BAR». Кажется беспорядочным, чтобы запустить контейнер, а затем остановить его сразу – jonalv

+0

Зависит от контейнера. При отсутствии длительной работы контейнер немедленно останавливается. – Martin

1

Запускать контейнер вы хотите сделать резервную копию и сделать резервную копию непосредственно в этом контейнере (измените свою точку входа на что-то вроде/bin/sh, если она была изменена с использованием --entrypoint /bin/sh):

docker run --rm -v $(pwd):/backup FOO tar cvf /backup/backup.tar /opt/webapp 

Или, если вы должны запустить резервное копирование в другом контейнере (например, резервные утилиты не включены), вам нужно только создать контейнер FOO, а не запускать его:

docker create --name foo-vol FOO 
docker run --rm --volumes-from foo-vol -v $(pwd):/backup \ 
    busybox tar cvf /backup/backup.tar /opt/webapp 
docker rm -v foo-vol 
Смежные вопросы