tgoop.com/devopslib/97
Last Update:
🛠 DevOps-лайфхак: как не потерять вечер на docker pull
Если у вас на сервере при каждом деплое идёт медленный docker pull
, а сеть вроде нормальная — проблема может быть не в интернет-канале, а в layer cache.
🔍 Почему так бывает
- Docker Registry (особенно приватный) иногда не поддерживает эффективные Range-запросы. Тогда даже небольшой слой тянется целиком.
- Если образы лежат в разных регионах, latency сильно бьёт по скорости загрузки.
- Частая ошибка — переупаковка слоёв при сборке, из-за чего кэш на нодах не используется.
⚡ Что можно сделать
1. Локальный кэш-реестр
- Запускаем маленький registry:2
рядом с нодами.
- Настраиваем Docker daemon через registry-mirrors
.
- При деплое тянем образы сначала из локального кэша.
2. Слои без изменений — без перекачки
- Следите за порядком инструкций в Dockerfile:
RUN apt-get update && apt-get install -y deps
COPY . .
Так базовые слои останутся закэшированы.
3. Предзагрузка образов
- В k8s можно использовать
imagePullPolicy: IfNotPresent
.- Для больших апдейтов — cronjob, который тянет образы на все ноды заранее.
💡 Итог: пару простых правок — и вместо 5 минут на деплой у вас будет 20 секунд.
Подпишись 👉@devopslib
BY Библиотека девопса | DevOps, SRE, Sysadmin
Share with your friend now:
tgoop.com/devopslib/97