Професионална поддръжка – Почистване, обновяване и сигурност

Поздравления! Вече знаете как да създавате, свързвате и управлявате контейнери. Но да си професионалист означава и да знаеш как да поддържаш системата си чиста и сигурна в дългосрочен план.
В тази финална част ще научим как да не позволяваме на Docker да изяде цялото място на сървъра и как да обновяваме приложенията си без стрес.
1. Дигиталното почистване: Къде изчезна мястото на диска? 🧹

Docker е ефективен, но има навика да пази всичко: стари образи, спрени контейнери и неизползвани мрежи. Ако не чистите редовно, дискът на вашия сървър ще се запълни бързо.
Златната команда: docker system prune
Тази команда е най-добрият приятел на системния администратор. Тя премахва:
- Всички спрени контейнери.
- Всички мрежи, които не се ползват от поне един контейнер.
- Всички "висящи" (dangling) образи – това са стари версии, които нямат име.
Внимание: Използвайте я смело, тя няма да изтрие работещите ви контейнери! docker system prune -a (Добавете -a, за да изтриете и неизползваните образи, а не само висящите).
2. Как да обновяваме приложенията си „от раз“? 🔄
Един от най-честите въпроси е: „Как да сложа новата версия на приложението ми, без да счупя всичко?“. С Docker Compose това е изключително просто.
Ако версията на вашия образ се е променила (например в Docker Hub е излязъл нов nginx), стъпките са:
- Изтегляне на новите версии:
docker compose pull - Рестартиране (без спиране на всичко):
docker compose up -d
Docker е достатъчно умен – той ще види кои образи са нови, ще спре само тях и ще ги пусне отново. Вашата база данни и другите непроменени услуги ще продължат да работят без прекъсване.
3. Ограничаване на ресурсите: Не позволявайте на един контейнер да "убие" сървъра ⚖️
По подразбиране един контейнер може да консумира толкова RAM и CPU, колкото му даде операционната система. Ако вашето приложение има бъг (Memory Leak), то може да блокира целия сървър.
В docker-compose.yml можем да поставим лимити:

services:
app:
image: my-app
deploy:
resources:
limits:
cpus: '0.50' # Използвай максимум 50% от едно ядро
memory: 512M # Максимум 512MB RAM
4. Сигурност: Docker не е магическа броня 🛡️
За да е сигурен вашият Docker сървър, спазвайте тези три правила:
- Никога не работете като Root вътре в контейнера: Ако е възможно, използвайте образи, които работят с потребител с по-малко права.
- Обновявайте редовно: Старите версии на образите имат дупки в сигурността. Правете
docker compose pullпоне веднъж месечно. - Пазете портовете: Не отваряйте портове към света (
-p 8080:8080), освен ако не е абсолютно необходимо. Ползвайте вътрешните Docker мрежи за комуникация.
5. Мониторинг: Какво се случва в момента? 📊

Ако искате да видите в реално време колко ресурси хабят вашите контейнери, използвайте вградения инструмент: docker stats
Това ще ви покаже списък с всички контейнери, тяхното CPU натоварване, памет и мрежов трафик.
Финал на поредицата 🎉
Вече преминахте през целия път:
- Инсталирахте Docker на сървър.
- Стартирахте готови приложения.
- Създадохте ваши собствени образи.
- Осигурихте постоянно съхранение на данни.
- Свързахте всичко в сигурни мрежи.
- Научихте се да поддържате системата си професионално.
Docker е безкрайно поле за учене, но с тези основи вие вече сте пред 90% от хората, които тепърва започват. Успех в контейнеризацията!
Намерихте материала за полезен?
Съдържанието на itpraktika.com е безплатно и ще остане такова.
Ако статията ти е помогнала — можеш да подкрепиш сайта с малка доброволна сума.
Всяко дарение помага за поддръжката и развитието на портала.
