Создать контейнер данных из другого образа докера
У меня есть образ докера, который составляет около 900 МБ, у него есть каталог /data
где все данные, которые я хочу, а также /data/.git
каталог, который я хотел бы исключить.
Я хотел бы создать контейнер данных (используя, например, изображение busybox) только с данными под /data
исключая /data/.git
каталог
Как мне сделать это наиболее эффективным способом?
/data
исключая /data/.git
только около 130 МБ
Таким образом, в основном у меня будет контейнер данных размером примерно от 130 до 200 МБ по сравнению с другим образом докера, размер которого составляет 900 МБ.
Спасибо
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. И затем первая команда, которую вы запускаете, - это очистить папку ".git".
Получив том "data-vol", вы можете использовать его в другом другом контейнере с помощью:
docker run -v data-vol:/data another_image