Наиболее подходящий контейнер для контейнера только для данных?
Какой самый подходящий (самый маленький, самый простой) контейнер для использования только для контейнера Docker для данных?
В документации они используют контейнер training/postgres. Тем не менее, я считаю, что другой контейнер фактически запустит базу данных (например, postgres).
http://docs.docker.com/userguide/dockervolumes/
Я предполагаю, что контейнер данных будет очень минимальным, так как обычно он должен предоставлять объем данных для другого контейнера.
Возможно, контейнер будет проигнорирован при создании контейнера только для данных?
Ответы
Ответ 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
.