Оптимизируйте обновления Docker с помощью этого трюка

Резюме

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

Я люблю Docker, но ненавижу, что контейнеры приходится обновлять вручную. Поэтому я нашел решение: Watchtower. Этот простой контейнер Docker полностью упростил мою настройку, и я не буду развертывать еще один сервер Docker без него.

Контейнеры Docker не обновляются сами по себе

Мне нравится все в контейнерах Docker, за исключением того, что в большинстве менеджеров Docker нет простого метода обновления. Хотя Unraid предоставляет отличную систему обновления Docker, обычно приходится пересоздавать контейнер, чтобы обновить его, даже с помощью чего-то вроде Portainer.

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

Оптимизируйте обновления Docker с помощью этого трюка

Честно говоря, я был немного удивлен этим. До последнего месяца или около того я всегда использовал Unraid для управления своими контейнерами Docker. У Unraid отличный интерфейс для того, чтобы узнать, есть ли у контейнера обновление, и применить это обновление. Фактически, в Unraid вы можете нажать на отдельные контейнеры, чтобы обновить их, или нажать кнопку и обновить их все одновременно.

Но, перейдя на Portainer, я понял, что это функция Unraid, а не то, что делает сам Docker. В тот момент я решил, что мне нужно найти лучший способ обновления моих контейнеров Docker. Такой, который был бы более автоматизированным и не требующим вмешательства, чем ручное пересоздание каждого контейнера.

Watchtower следит за обновлениями Docker

Когда я отправился на поиски автоматизированной системы обновления для Docker, Watchtower был первым программным обеспечением, которое я встретил. На нем же и остановился поиск, потому что он делает все, что мне нужно, и даже больше.

Watchtower — это контейнер Docker, который работает в вашей настройке Docker. Подключившись к сокету Docker, он может видеть, какие у вас есть контейнеры, и знает, что делать дальше. Развертывание Watchtower чрезвычайно просто.

Оптимизируйте обновления Docker с помощью этого трюка

Без дополнительных аргументов контейнер Watchtower запустится один раз и остановится. Однако есть много переменных окружения, которые можно задать. Одна из основных переменных, которую я использую, — WATCHTOWER_DISABLE_CONTAINERS, в которую вы передаете имя контейнера в качестве переменной. По сути, это говорит Watchtower игнорировать эти контейнеры.

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

Оптимизируйте обновления Docker с помощью этого трюка

У меня также есть переменные окружения WATCHTOWER_SCHEDULE и TZ, настроенные на обработку планирования при запуске Watchtower. Он использует планирование Chron, и мой настроен на запуск рано утром ежедневно, когда обычно никто не использует какие-либо службы или веб-сайты, которые я размещаю в своей настройке Docker. Однако вы можете настроить его на проверку один раз в день, несколько раз в день, раз в неделю, раз в месяц. Это действительно зависит от вас.

Автоматическое обновление или просто уведомление — выбор за вами

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

Watchtower может интегрироваться с Discord и Slack, позволяя вам настраивать уведомления о том, что он делает. Это значит, что вы можете просто сказать ему, когда контейнер обновляется, но ничего с ним не делать. С другой стороны, вы можете сделать так, чтобы он делал полное обновление контейнеров и сообщал вам, когда оно будет завершено. Или, как я, просто обновлять его, но никогда не знать, что происходит, пока вы не проверите логи.

Оптимизируйте обновления Docker с помощью этого трюка

Так что, стоит ли устанавливать его на автоматическое обновление или просто уведомлять? Ну, у меня большинство контейнеров обновляются автоматически: те, которые я не предвижу поломки, и которые мне относительно легко исправить, если они это сделают. Другие сервисы могут катастрофически сломаться при автоматическом обновлении.

Вам нужно определить, какой уровень автоматизации вы хотите здесь использовать. Однако самое замечательное в Watchtower — это его ультранастраиваемость, поэтому вы можете решать в каждом конкретном случае, будет ли контейнер обрабатываться автоматически.

Оптимизируйте обновления Docker с помощью этого трюка

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

Понравилась статья? Поделиться с друзьями: