создать контейнер данных из другого образа докера

У меня есть образ докера размером около 900 МБ , в нем есть каталог / data , где находятся все нужные мне данные, а также /data/.git , который я хотел бы исключить.

Я хочу создать контейнер данных (например, используя изображение busybox) только с данными в папке / data , за исключением / data / .git каталог

Как мне сделать это наиболее эффективным способом?

/ data за исключением /data/.git составляет всего около 130 МБ

Таким образом, в основном у меня будет контейнер данных размером примерно от 130 до 200 МБ по сравнению с другой образ докера размером 900 МБ

Спасибо

1
задан 11 October 2016 в 00:06
1 ответ

Я бы перешел на именованный том и создал его следующим образом:

docker run -it --rm -v data-vol:/target your_image \
  /bin/bash -c "cp -av /data/* /target"

cp -av /data/* /target будет игнорировать все файлы точек, так что вам, возможно, придется добавить другие вручную, если у вас есть больше, чем просто ".git", например cp -av /data/* /data/. app-files /target

Если вы хотите сначала создать его с полной копией /data, а затем удалить папку .git позже, это еще проще:

docker run -it --rm -v data-vol:/data your_image rm -rf /data/.git

Пока "data-vol" не инициализирован, он будет создан Docker'ом с полным содержимым /data. А затем первая выполняемая команда - очистить папку ".git".

После того, как у вас есть том "data-vol", вы можете повторно использовать его в другом контейнере с:

docker run -v data-vol:/data another_image
1
ответ дан 3 December 2019 в 23:40

Теги

Похожие вопросы