Подтвердить что ты не робот

Наиболее подходящий контейнер для контейнера только для данных?

Какой самый подходящий (самый маленький, самый простой) контейнер для использования только для контейнера Docker для данных?

В документации они используют контейнер training/postgres. Тем не менее, я считаю, что другой контейнер фактически запустит базу данных (например, postgres).

http://docs.docker.com/userguide/dockervolumes/

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

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

4b9b3361

Ответ 1

Обновление: теперь, когда мы назвали тома, вы вообще не хотите использовать контейнеры данных вообще.

Используйте то же изображение для контейнера данных - в этом случае изображение Postgres. Вы не оставляете контейнеры данных работающими, поэтому они не будут потреблять ресурсы.

Использование одного и того же изображения важно по нескольким причинам:

  • Это займет меньше места, так как изображение уже кэшировано.
  • Изображение получает возможность заполнить объем данными, например, файлами по умолчанию.
  • Права и владелец будут правильными.

Для получения дополнительной информации см. Data Only Container Madness.

Ответ 2

Я рекомендую tianon/true изображение из коллекции док файлов. На 125 байт он меньше изображений на основе busybox:

REPOSITORY                 TAG                 IMAGE ID            CREATED             VIRTUAL SIZE
tianon/true                latest              724d63a6172d        35 hours ago        125 B

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

Ответ 3

Busybox - это базовое изображение, а не изображение пользователя, и, следовательно, немного более практичный для использования в производстве, он также крошечный.

Страница докеры изображений здесь

BusyBox: швейцарский армейский нож встроенного Linux

Размер около 2,5 МБ. Busybox - один из самых маленьких дистрибутивов Linux.

BusyBox объединяет крошечные версии многих распространенных утилит UNIX в один небольшой исполняемый файл. Он предоставляет замены для большинства утилит, которые вы обычно находите в GNU fileutils, shellutils и т.д. Утилиты BusyBox обычно имеют меньше возможностей, чем их полнофункциональные кузены GNU; однако включенные опции обеспечивают ожидаемую функциональность и ведут себя так же, как их аналоги GNU. BusyBox предоставляет довольно полную среду для любой небольшой или встроенной системы.

Ответ 4

В этом посте рекомендуется использовать пустой "чистый" контейнер - без ОС вообще:

Dockerfile:

FROM scratch

VOLUME /data
ENTRYPOINT ["/no/such/file"]

Я просто сделал пустой, и изображение... 0 байт!

Затем во время сборки я скопировал 2K файл, а размер изображения составил 260 байт, поэтому его необходимо сжать.

Я использую это, потому что именованные тома не так полезны в полу/безсерверных средах, таких как AWS Fargate, где нет хоста, и вы хотите развернуть версионные данные.

Обновление: если вы хотите, чтобы контейнер работал правильно в docker-compose, приведенный выше пример не будет работать, потому что точка входа не работает. tianon/true кажется, лучшее решение, крошечная программа, которая возвращает true. Таким образом, вы можете использовать FROM tianon/true.