DEVOPSLIB Telegram 97
🛠 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
👍31



tgoop.com/devopslib/97
Create:
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

View MORE
Open in Telegram


Telegram News

Date: |

Developing social channels based on exchanging a single message isn’t exactly new, of course. Back in 2014, the “Yo” app was launched with the sole purpose of enabling users to send each other the greeting “Yo.” 1What is Telegram Channels? The Channel name and bio must be no more than 255 characters long How to Create a Private or Public Channel on Telegram? A new window will come up. Enter your channel name and bio. (See the character limits above.) Click “Create.”
from us


Telegram Библиотека девопса | DevOps, SRE, Sysadmin
FROM American