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

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

Поздравления! Вече знаете как да създавате, свързвате и управлявате контейнери. Но да си професионалист означава и да знаеш как да поддържаш системата си чиста и сигурна в дългосрочен план.

В тази финална част ще научим как да не позволяваме на Docker да изяде цялото място на сървъра и как да обновяваме приложенията си без стрес.


1. Дигиталното почистване: Къде изчезна мястото на диска? 🧹

Дигиталното почистване: docker system prune

Docker е ефективен, но има навика да пази всичко: стари образи, спрени контейнери и неизползвани мрежи. Ако не чистите редовно, дискът на вашия сървър ще се запълни бързо.

Златната команда: docker system prune

Тази команда е най-добрият приятел на системния администратор. Тя премахва:

  • Всички спрени контейнери.
  • Всички мрежи, които не се ползват от поне един контейнер.
  • Всички "висящи" (dangling) образи – това са стари версии, които нямат име.

Внимание: Използвайте я смело, тя няма да изтрие работещите ви контейнери! docker system prune -a (Добавете -a, за да изтриете и неизползваните образи, а не само висящите).


2. Как да обновяваме приложенията си „от раз“? 🔄

Един от най-честите въпроси е: „Как да сложа новата версия на приложението ми, без да счупя всичко?“. С Docker Compose това е изключително просто.

Ако версията на вашия образ се е променила (например в Docker Hub е излязъл нов nginx), стъпките са:

  1. Изтегляне на новите версии: docker compose pull
  2. Рестартиране (без спиране на всичко): docker compose up -d

Docker е достатъчно умен – той ще види кои образи са нови, ще спре само тях и ще ги пусне отново. Вашата база данни и другите непроменени услуги ще продължат да работят без прекъсване.


3. Ограничаване на ресурсите: Не позволявайте на един контейнер да "убие" сървъра ⚖️

По подразбиране един контейнер може да консумира толкова RAM и CPU, колкото му даде операционната система. Ако вашето приложение има бъг (Memory Leak), то може да блокира целия сървър.

В docker-compose.yml можем да поставим лимити:

docker-compose.yml

services:
  app:
    image: my-app
    deploy:
      resources:
        limits:
          cpus: '0.50'     # Използвай максимум 50% от едно ядро
          memory: 512M      # Максимум 512MB RAM

4. Сигурност: Docker не е магическа броня 🛡️

За да е сигурен вашият Docker сървър, спазвайте тези три правила:

  1. Никога не работете като Root вътре в контейнера: Ако е възможно, използвайте образи, които работят с потребител с по-малко права.
  2. Обновявайте редовно: Старите версии на образите имат дупки в сигурността. Правете docker compose pull поне веднъж месечно.
  3. Пазете портовете: Не отваряйте портове към света (-p 8080:8080), освен ако не е абсолютно необходимо. Ползвайте вътрешните Docker мрежи за комуникация.

5. Мониторинг: Какво се случва в момента? 📊

 docker stats

Ако искате да видите в реално време колко ресурси хабят вашите контейнери, използвайте вградения инструмент: docker stats

Това ще ви покаже списък с всички контейнери, тяхното CPU натоварване, памет и мрежов трафик.



Финал на поредицата 🎉

Вече преминахте през целия път:

  1. Инсталирахте Docker на сървър.
  2. Стартирахте готови приложения.
  3. Създадохте ваши собствени образи.
  4. Осигурихте постоянно съхранение на данни.
  5. Свързахте всичко в сигурни мрежи.
  6. Научихте се да поддържате системата си професионално.

Docker е безкрайно поле за учене, но с тези основи вие вече сте пред 90% от хората, които тепърва започват. Успех в контейнеризацията!

open source spirit
🛠️
$

Намерихте материала за полезен?

Съдържанието на itpraktika.com е безплатно и ще остане такова.
Ако статията ти е помогнала — можеш да подкрепиш сайта с малка доброволна сума. Всяко дарение помага за поддръжката и развитието на портала.

PayPal Revolut

Вашият коментар

Вашият имейл адрес няма да бъде публикуван. Задължителните полета са отбелязани с *


Колко е 7 - 4 ? (въведете числото)