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