Привет, коллеги! 👋
Сегодня разберём «магию» блока
resources в файле docker-compose.yml — чтобы ваши сервисы не превратились в хаотичных пожирателей ресурсов, как Мася в 3 часа ночи 🐱(надеюсь, он не будет читать этот пост)
❓ Зачем это нужно?
Без лимитов ваш докер-контейнер вполне способен:
⚠️ Захватить все ресурсы процессора
⚠️ Захватить все ресурсы оперативной памяти
⚠️ Внештатно завершить свою работу из-за исключения
Out Of Memory
(это значит, что вся оперативная память была скушана)
Чтобы ваш контейнер понимал, сколько ресурсов ему полагается, нужно прописать эту информацию в блоке:
deploy:
resources:
🖼️ Пример полного файла docker-compose.yml:
services:
my_service:
container_name: my_service
image: my_image:latest
deploy:
resources:
limits:
cpus: '1' # Где 1 - означает одно ядро CPU
memory: 1G # Можно указывать, как в Мегабайтах(M), так и в Гигабайтах(G)
🚨 Частая ошибка:
Путают
limits и reservations (резервирование ≠ ограничение!)deploy:
reservations:
cpus: '0.25'
memory: 20M
Блоку
reservations будет посвящен отдельный пост Был ли у вас опыт настройки лимитов?
Делитесь кейсами в комментариях или в нашем чатике 💬
👉 Реакции от вас = сигнал, что тема полезна!
#полезности | 🍩 Донейшн | 📈 Забустить канал