Рубрики
Uncategorized

Выберите Diveroless контейнеры по умолчанию

Я использовал Diveroless контейнеры чуть более года, и они потрясающие! Они … Теги с контейнерами, докером, дежопами, безопасностью.

Я использовал Diveroless контейнеры чуть более года, и они потрясающие! Они безопасны, простые в использовании и меньше, чем ваш средний контейнер. Так почему бы я не вижу их чаще? Давайте взглянем!

Размерные контейнеры основаны на контейнере Debian, но они сильно отличаются от Ubuntu. Прежде всего, Google управляет этими контейнерами. Это означает, что вы можете полагаться на них, чтобы косить газон, вытащить сорняки и удалить вновь обнаруженные уязвимости.

Вторая разница есть Конкретные контейнеры для конкретных языков Отказ На данный момент у них есть dotnet, java, узел, ржавчина и Голанг (который просто работает на образе для отрыва базы). Почему у определенных контейнеров для конкретных изображений? Почему бы не установить их все на одном контейнере? Помимо проблем по размеру, Google удалил 90% контейнера и сохранил только то, что требуется для запуска конкретного языка. Это значительно удаляет количество уязвимостей, которые можно найти в контейнере. Например, скажем, кто-то способен работать в вашем контейнере, и они хотят запустить команду. Угадай, что? Там нет оболочки. Скажем, уязвимость была найдена в библиотеке у Debian. Скорее всего, библиотека не существует в отгрузке. Это было бы, если бы вы использовали только ваше место жительства для сна. Вам не нужна кухня, подвал, гостиная, телевизор и т. Д. Так зачем платить за полный дом? Вот как это, когда вы используете полный контейнер для простого запуска приложения.

Как я уже упоминал, кто-то размер Google поддерживает эти контейнеры, поэтому вы можете поспорить, что они содержатся в курсе. Они публично сказали, что они используют их внутренне, и просто подвергают их всем остальным. Есть команда постоянно обновляя их, поэтому они собираются придерживаться. Я знаю, что некоторые люди получили плохой вкус, когда я сказал, что это Google Containers. Позвольте мне помочь успокоить ваш разум.

  1. Google ничего не устанавливает на эти контейнеры. Там нет служб Google Play на этих контейнерах. Это открытый источник, поэтому, если вы хотите проверить для себя, иметь в этом .
  2. Я знаю, что Google имеет репутацию попробовать вещи на некоторое время, а затем просто бросить их. Пока я не думаю, что это произойдет (Google серьезно относится к безопасности в прошлом, и они хотят, чтобы их собственные контейнеры были в безопасности), это очень легко миграция в другой контейнер. Я смог просто изменить базовое изображение моего приложения Java на изображение OpenJDK и запустите команду Java в конце, и она работала просто отлично. Это также может быть сделано, если вы просто не хотите, чтобы взвешенное одеяло оттерпевшегося, помогая вам спать ночью. Процесс миграции очень прост.

Что все звучит идеально … Почему они не используются везде? Есть некоторые недостатки.

  1. Вы не можете установить ничего другого с вашим приложением. Вы хотите установить что-то, чтобы помочь с некоторыми метриками? Извините, не в этом контейнере. Ваша безопасность хочет установить что-то на контейнере каждого? Извините, не здесь! (Это недостаток?) Многие из этих вещей могут быть состоят, если вы проводите на Пааа, однако.
  2. Один из моих самых больших вопросов с диспертом пришел при попытке опубликовать AWS. AWS не ожидает, чтобы не иметь оболочки в контейнере, поэтому его проверки здоровья начинают не удавать. Я пойду в то, как я исправил это в будущем пост (оставайся настроенными!)
  3. Вы можете использовать только версии каждого языка, которые они предоставляют. Вы хотите использовать Java 6? Они не поддерживают это. Как насчет Java 14? Извините, только 8 и 11 поддерживаются прямо сейчас Отказ
  4. Вы можете использовать один и только один язык. Я наткнулся на кого-то, кто хотел использовать как Python, так и Java в одном и том же контейнере. Это не будет работать с diveroless!

Использование Image Image очень просто, но это может быть немного запутанным. Как я могу запустить приложение Java (например), если я не могу запустить какие-либо команды Java (это требует, чтобы оболочка запустить »Java -jar xxx.jar «, помните?) К счастью, у них отличная документация. Вот пример, а также ссылки на другие примеры:

FROM gcr.io/distroless/java:11
COPY ./main.jar /app
WORKDIR /app
CMD ["main.jar"]

Контейнер установлен на проведение эквивалента «Java -jar» уже, ему просто нужен путь к вашей банке в CMD. Вот официальные примеры:

Вопросы? Комментарии? Обеспокоенность? Дай мне знать!

Оригинал: «https://dev.to/jacobfrericks/choose-distroless-containers-by-default-19oi»