
Установка Docker
Начнем с установки Docker compose на чистый сервер с Ubuntu Server 24.04. Самый быстрый способ:
curl https://get.docker.com -o install.sh && sh install.sh
sudo systemctl enable docker.service
sudo systemctl enable docker
sudo usermod -aG docker $USER
Чтобы не использовать sudo
при запуске Docker, добавьте пользователя (например, USERNAME
) в группу docker
:
sudo usermod -aG docker USERNAME
После выполнения этих команд перезагрузите сервер или выйдите и снова войдите в систему, чтобы изменения вступили в силу.
Установка и настройка Portainer
Portainer — это удобный веб-интерфейс для управления контейнерами Docker. Он значительно упрощает работу с контейнерами, позволяя запускать, останавливать и настраивать их через графический интерфейс без необходимости использования командной строки.
Portainer идеально подходит для пользователей, которые хотят упростить администрирование контейнеров и получить визуальное представление о загруженных образах, сетях и томах.
Установим Portainer с помощью следующей команды:
sudo docker run -d \
-p 8000:8000 -p 9443:9443 \
--name portainer \
--restart=always \
-v /var/run/docker.sock:/var/run/docker.sock \
-v portainer_data:/data \
portainer/portainer-ce:latest
После установки Portainer будет доступен в браузере по адресу https://<IP_СЕРВЕРА>:9443
. Настоятельно рекомендуется настроить доменную авторизацию, чтобы облегчить управление пользователями.
Автоматическое обновление контейнеров с Watchtower
Watchtower — это инструмент для автоматического обновления контейнеров при выходе новых версий образов. Он следит за запущенными контейнерами, сравнивает версии образов в реестре и при необходимости обновляет контейнеры до актуальных версий.
Использование Watchtower позволяет автоматически поддерживать контейнеры в актуальном состоянии без необходимости ручного обновления, что особенно удобно для развертывания критически важных сервисов.
Для его настройки создадим директорию и файл docker-compose.yml
:
mkdir watchtower
cd watchtower
nano docker-compose.yml
Прописываем в docker-compose.yml
настройки для отправки уведомлений в Telegram и ежедневного обновления контейнеров в 23:00:
services:
watchtower:
image: containrrr/watchtower
container_name: watchtower
restart: unless-stopped
volumes:
- '/var/run/docker.sock:/var/run/docker.sock'
environment:
- TZ=Asia/Yekaterinburg
- WATCHTOWER_LIFECYCLE_HOOKS=True
- WATCHTOWER_NOTIFICATIONS=shoutrrr
- WATCHTOWER_NOTIFICATION_URL=telegram://ТОКЕН_БОТА_ТГ@telegram/?channels=ЧАТ_ID
- WATCHTOWER_DEBUG=true
- WATCHTOWER_CLEANUP=true
- WATCHTOWER_SCHEDULE=0 0 23 * * *
Запускаем Watchtower в фоне:
sudo docker compose up -d
Теперь Watchtower будет ежедневно проверять обновления контейнеров и автоматически их обновлять, отправляя уведомления в Telegram о выполненных действиях.
Заключение
Теперь ваш сервер настроен для работы с контейнерами с помощью Docker. Вы можете удобно управлять контейнерами через Portainer, а также автоматически обновлять их с помощью Watchtower. Это обеспечит удобство в эксплуатации и поможет избежать проблем, связанных с устаревшими версиями образов.