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