2016-05-11 2 views
1

Я новичок в докеров и только что начал изучать его. То, что я пытаюсь достичь, - опубликовать образ Docker, который будет иметь только некоторые файлы конфигурации. Эти файлы будут доступны для нескольких проектов.Использование изображения докеров для хранения файлов данных

Таким образом, изображение, которое я хочу опубликовать, это «my-config-image».


Это как структура каталогов:

/my-config-settings 
    /folder1/multiple files 
    /folder2/multiple files 
    file1.txt 
    file2.txt 

После чтения в Интернете и пройдя через Docker быстрый старт я получил некоторое представление.

Я решил использовать Создать базовое изображение с использованием scratch. ссылка (https://docs.docker.com/engine/userguide/eng-image/baseimages/)

Так выглядит мой Dockerfile.

FROM scratch 
ADD folder1/folder2/

Это команда, я использую для публикации изображения.

/my-config-settings/docker build -t my-config-image . 
Sending build context to Docker daemon 5.12 kB 
Step 1 : FROM scratch 
---> 
Step 2 : ADD folder1/folder2/
---> Using cache 
---> cc9c3f338f51 
Successfully built cc9c3f338f51 

Когда я хочу, чтобы проверить, если изображение было создано на месте Я подтверждаю это таким образом, выполняя

docker images 


REPOSITORY           TAG     IMAGE ID   CREATED    SIZE 
my-config-image          latest    cc9c3f338f51  2 minutes ago  39 B 

Мой главный вопрос, как я могу проверить, если это работает, также сделал это добавьте file1.txt и file2.txt в изображение, если нет, как я могу указать, чтобы добавить эти файлы в изображение.

Есть ли способ добавить все файлы и каталоги рекурсивно в образ, который я пытаюсь создать?

Также как мне получить доступ к этому изображению, значит, как я могу проверить, действительно ли на этом изображении есть все папки и файлы. Есть ли способ сделать это?

Я согласен с предложениями и смотрю на другой подход докеров, если то, что я пытаюсь сделать, не имеет смысла.

Благодарим вас за чтение.

+0

Я немного смущен, если честно. Вы спрашиваете, как поместить папку в другую папку? Или вы спрашиваете, как узнать, работает ли это? И то и другое? Ни? –

+0

Я пытаюсь создать изображение с той же структурой папок, что и я. Я не уверен, что команда, которую я использовал, должна ссылаться на обе папки? Если его добавить папку в другую папку, то моя команда ADD folder1/folder2/неверна. Я не пытаюсь этого достичь. – Aniks

+0

Знаете ли вы, как запустить изображение? –

ответ

1

Вы пытаетесь решить проблему управления конфигурацией с помощью подхода управления приложениями. Для общих конфигураций вы обычно хотите использовать «централизованный подход к местоположению». Основными примерами этого могут быть репозиторий git или ведро S3. Оба решения имеют собственное хранилище документов и могут быть распределены между службами с мелким контролем доступа.

Изображение docker не является докером для хранения/совместного использования конфигурации. Имея изображение, вы можете в основном сделать две вещи:
1. Базовые другие изображения с вашего исходного изображения
2. Выполнить контейнер

Учитывая, что ваше изображение здесь только Scratch и файлы, нет исполняемых файлов и ничего не запускать. Пример hello world скопировал каталог с фактическим скриптом в нем, поэтому они столкнулись с запущенным контейнером.

В качестве базового изображения конфигурация не имеет смысла приближаться к вещам вроде зависимостей.

Если вы действительно хотите использовать инструмент докеров для этого, вы ищете объемы докеров. Это может сохраняться в файловой системе и легко распространяться в разных контейнерах. https://docs.docker.com/engine/userguide/containers/dockervolumes/

+0

Ограничение репутации, к сожалению –

+0

Я согласен, но это всего лишь тестовый пример, который я пытаюсь использовать для собственного обучения. Я хочу достичь этого, используя изображения докеров. – Aniks

+0

Изображение Docker здесь особо не имеет смысла. Я буду обновлять свой ответ, описывая, почему –