docker создание контекста и конфиденциальных данных - PullRequest
0 голосов
/ 18 января 2020

Название этого вопроса может указывать на то, что на него уже дан ответ, но, поверьте мне, я интенсивно искал здесь на SO: -)

Насколько я понимаю, при создании docker -изображения текущего папка будет упакована и отправлена ​​в docker -deamon в качестве контекста сборки. Из этого контекста сборки docker -изображение создается путем «добавления» или «копирования» файлов и «запуска» команд в Dockerfile.

И более того: в случае, если у меня есть конфиденциальная конфигурация -файлы в папке DockerFile, эти файлы будут отправлены в docker -deamon как часть контекста сборки.

Теперь мой вопрос: Допустим, я не использовал COPY или ADD в моем Dockerfile ... Будут ли эти файлы конфигурации где-нибудь в docker -изображении? Я запустил bash внутри изображения и не смог найти файлы конфигурации, но, может быть, они все еще находятся где-то в более глубоких слоях изображения?

В основном мой вопрос таков: будет ли контекст строение будет храниться в образе?

Ответы [ 2 ]

1 голос
/ 18 января 2020

Как вы сказали, только операции COPY, ADD и RUN создают слои, и поэтому только эти операции добавляют что-то к изображению.

Контекстом сборки является только каталог с ресурсами эти операции (в частности, COPY и ADD) будут доступны при построении образа. Но это не что-то похожее на «базовый слой».

На самом деле, вы сказали, что запустили bash и дважды проверили, что ничего чувствительного не было. Еще один способ убедиться в этом - проверить слои изображения. Для этого docker history --no-trunc <image>

1 голос
/ 18 января 2020

Там будут присутствовать только те вещи, которые вы явно COPY или ADD для изображения. Обычно такие строки, как COPY . ., копируют весь контекст в изображение, поэтому вам нужно убедиться, что вы не копируете то, что не хотите сохранять и публиковать.

Вероятно, это хорошая идея, чтобы эти файлы вообще не отправлялись демону Docker. Если вы знаете, какие файлы содержат эту информацию, вы можете добавить их в .dockerignore файл (синтаксис аналогичен .gitignore и аналогичным файлам). Существуют и другие способы более жесткого контроля над тем, что находится в контексте сборки (путем создания дерева теневой установки, содержащего только содержимое контекста), но это относительно необычная установка.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...