Лучшие практики Docker, которые вам нужно знать

Используйте официальный образ Docker.

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

Для создания собственного образа вам придется самостоятельно выполнить всю настройку. Например, чтобы создать образ для приложения node.js, вам необходимо загрузить node.js и его зависимости. Этот процесс занимает много времени и может не привести к созданию всех правильных конфигураций.

Docker рекомендует использовать официальный образ node.js со всеми правильными зависимостями. Image Docker имеет лучшие показатели безопасности, легок и протестирован в различных средах. Официальное изображение можно найти на официальном сайте Docker.

Лучшие практики Docker, которые вам нужно знать. Изображение 1.

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

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

Сборка с другими версиями образа Docker может легко привести к непредсказуемому поведению вашего приложения. Версии могут конфликтовать с другими зависимостями, что даже может привести к сбою приложения.

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

Например, вместо docker pull alpine используйте docker pull alpine:3.18.3 . Docker получит эту конкретную версию. Затем вы можете использовать его в последующих сборках, уменьшая количество ошибок в вашем приложении. Конкретные версии образа можно найти на официальной странице образа Docker в разделе «Поддерживаемые теги» и соответствующих ссылках на Dockerfile:

Лучшие практики Docker, которые вам нужно знать. Изображение 2.

Сканируйте изображения, чтобы найти дыры в безопасности

Как узнать, что образ, который вы хотите создать, не содержит уязвимостей безопасности? Сканируя его. Вы можете сканировать образы Docker с помощью команды scan docker следующим образом:

сканирование докера (ИЗОБРАЖЕНИЕ)

Сначала вам необходимо войти в Docker, чтобы отсканировать изображение:

вход в докер

Затем отсканируйте конкретное изображение, которое хотите протестировать:

сканирование Docker в Ubuntu: последняя версия

Лучшие практики Docker, которые вам нужно знать. Рисунок 3.

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

Используйте небольшой образ Docker.

Когда вы загружаете образ Docker, он поставляется со всеми системными утилитами. Это увеличивает размер изображения с помощью инструментов, которые вам не нужны.

Большие образы Docker «съедают» дисковое пространство и могут замедлить работу контейнера. Они также чаще страдают от большего количества уязвимостей безопасности.

Вы можете уменьшить размер образов Docker, используя образы Alpine. Изображения Alpine легкие и содержат только необходимые инструменты. Они уменьшают объем памяти, заставляя приложения работать быстрее и эффективнее.

Вы найдете версию Alpine для большинства официальных образов в Docker. Вот пример Alpine-версии для PostgreSQL:

Лучшие практики Docker, которые вам нужно знать. Рисунок 4.

Оптимизация слоя образа хранилища

Каждая команда в Dockerfile представляет слой изображения. Эти слои имеют разные утилиты и функции. Если вы посмотрите официальные изображения на Docker Hub, вы увидите инструкции, использованные для их создания.

Dockerfile содержит все необходимое для создания образа. Это одна из причин, почему многие программисты предпочитают Docker виртуальным машинам.

Вот структура примера изображения Alpine:

Лучшие практики Docker, которые вам нужно знать. Рисунок 5.

При создании приложения на основе изображений вы добавляете к этому изображению дополнительные слои. Docker выполняет инструкции в Dockerfile сверху вниз, и если один уровень изменяется, Docker должен перестроить следующие уровни.

Лучшая практика организации Dockerfiles из файлов, которые изменяются реже всего или чаще всего. Неизменяемые инструкции, такие как установка, могут находиться в верхней части файла.

Когда вы меняете файлы, Docker создает сборку из измененных файлов и сохраняет неизмененные файлы над собой. Поэтому процесс протекает быстрее.

Лучшие практики Docker, которые вам нужно знать. Изображение 6.

Взгляните на пример, показанный на изображении выше. Если в файлах приложения есть изменения, Docker выполнит сборку оттуда. Переустанавливать пакет npm не требуется.

При построении на основе этого образа процесс будет выполняться быстрее, чем восстановление всех остальных слоев с нуля. Хранилище также ускоряет загрузку и отправку изображений из Docker Hub.

Выше приведены лучшие советы по использованию Docker. Надеюсь, статья окажется для вас полезной.

Похожие записи

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *