Как да инсталираме Watchtower на Docker с Docker Compose?
Днес ще ви покажа как да инсталираме Watchtower с помоща на Docker и Docker Compose.
Какво е Watchtower?
Watchtower е приложение, което ще наблюдава вашите работещи Docker контейнери и ще следи за промени в изображенията, от които първоначално са стартирани тези контейнери.
Watchtower е докер контейнер, който ще актуализира версията на други работещи контейнери. Той ще свали новото ви изображение, ще затвори елегантно съществуващия ви контейнер и ще го рестартира със същите опции, които са били използвани при първоначалното му разполагане.
Как да инсталираме Watchtower с помощта на Docker-Compose?
За да започнем, ще ни трябва:
Инсталирана версия на Docker и Docker Compose.
Първо актуализирайте системните хранилища:
sudo apt update && sudo apt upgrade
Създайте нова директория watchtower
mkdir watchtower
cd watchtower
vi docker-compose.yml
Във файла docker-compose.yml добавяме следното съдържание:
version: '3'
services:
watchtower:
image: containrrr/watchtower
restart: always
volumes:
- /var/run/docker.sock:/var/run/docker.sock
- /etc/timezone:/etc/timezone:bg
environment:
- WATCHTOWER_CLEANUP=true
- WATCHTOWER_LABEL_ENABLE=true
- WATCHTOWER_INCLUDE_RESTARTING=true
labels:
- "com.centurylinklabs.watchtower.enable=true"
Записваме информацията с натискане на :wq
Стартираме docker-compose файла със:
docker compose up -d
След като командата приключи, можете да проверите, дали докерът се е стартирал:
docker ps
По подразбиране Watchtower ще проверява за актуализации на всеки 24 часа от момента, в който стартирате контейнера Watchtower. Сега ще трябва да добавите етикети към вашите докер контейнери, които искате да актуализирате.
Актуализиране на контейнери
Горният файл за съставяне на докери ще накара Watchtower да работи, но в текущото си състояние той няма да актуализира нито един от съществуващите ви контейнери. Той е безопасен по подразбиране , така че няма да прави нищо друго освен да се актуализира – може би безполезно, но безопасно!
За да актуализирате другите си докер контейнери, трябва да добавите етикет към техния docker-compose.yml , който задава com.centurylinklabs.watchtower.enable=true. След това Watchtower ще вземе този етикет и ще разбере, че трябва да включи този докер контейнер в своите актуализации.
За да бъдат включени вашите контейнери в рутинната актуализация на Watchtowers, ще трябва да добавите един и същ атрибут на етикети към ВСИЧКИ ваши услуги за съставяне на докери, точно както в примера по-долу:
version: '3.6'
services:
db1:
image: mysql:5.7
restart: unless-stopped
volumes:
- ./data/mysql:/var/lib/mysql
- ./config/mysql/conf.d:/etc/mysql/conf.d
environment:
MYSQL_ROOT_PASSWORD: password
MYSQL_DATABASE: db1
MYSQL_USER: db1
MYSQL_PASSWORD: password
labels:
- "com.centurylinklabs.watchtower.enable=true"
След като добавите атрибута labels, просто изчакайте да бъде пуснато ново изображение и в рамките на 24 часа вашият контейнер ще бъде актуализиран, рестартиран и старото изображение премахнато
Благодарим ви за прочитането на статията! Ако намерихте информацията за полезна, можете да дарите посредством бутоните по-долу:
Donate ☕️ Дарете с PayPalDonate 💳 Дарете с Revolut