Назад | Перейти на главную страницу

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

У меня есть образ докера о 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