JavaRush /Курси /Модуль 2: Fullstack /Перевірка стану контейнерів

Перевірка стану контейнерів

Модуль 2: Fullstack
Рівень 12 , Лекція 2
Відкрита

3.1 Основи команди docker ps

Команда docker ps — одна з найкорисніших в арсеналі Docker. Вона відображає список працюючих контейнерів та надає інформацію про них. У цій лекції ми детально розглянемо, як використовувати docker ps, щоб перевірити стан твоїх контейнерів і які параметри доступні для більш детального виводу інформації.

За замовчуванням команда docker ps виводить список лише тих контейнерів, які зараз запущені.

Синтаксис

Terminal

docker ps [OPTIONS]

Де:

  • OPTIONS: додаткові параметри для фільтрації та форматування виводу.

Приклад базового використання

Terminal


docker ps 

Цей базовий виклик команди docker ps виведе список усіх запущених контейнерів. Вивід буде включати наступні поля:

  • CONTAINER ID: унікальний ідентифікатор контейнера.
  • IMAGE: образ, з якого був створений контейнер.
  • COMMAND: команда, яка виконується в контейнері.
  • CREATED: час, що минув з моменту створення контейнера.
  • STATUS: поточний стан контейнера (наприклад, Up 5 minutes).
  • PORTS: перенаправлені порти.
  • NAMES: ім'я контейнера.

Список усіх контейнерів

Для відображення усіх контейнерів, включаючи зупинені, використовуй опцію -a:

Terminal


docker ps -a 

Ця команда виведе список усіх контейнерів, запущених коли-небудь, із зазначенням їх поточного стану (запущений, зупинений тощо).

3.2 Фільтрація виводу

Docker дає можливість фільтрувати вивід команди docker ps, щоб показувати тільки ті контейнери, які відповідають заданим критеріям.

1. Фільтрація за статусом

Наприклад, щоб показати тільки зупинені контейнери:

Terminal


docker ps -f "status=exited" 

2. Фільтрація за ім'ям

Щоб показати контейнери з визначеним ім'ям або його частиною:

Terminal


docker ps -f "name=my_container"

3. Фільтрація за образом

Щоб показати контейнери, створені з конкретного образу:

Terminal

docker ps -f "ancestor=nginx"

3.3 Форматування виводу

Ти можеш налаштувати вивід команди docker ps, щоб зробити його більш читабельним або включити лише ті поля, які потрібні. Для цього використовується параметр --format.

Приклад форматування

Terminal


docker ps --format "table {{.ID}}\t{{.Names}}\t{{.Status}}"

Цей приклад виводить таблицю з ідентифікатором контейнера, його ім’ям і статусом.

Доступні стовпці таблиці

  • {{.ID}}: ідентифікатор контейнера.
  • {{.Image}}: образ контейнера.
  • {{.Command}}: команда, яка виконується у контейнері.
  • {{.CreatedAt}}: час створення контейнера.
  • {{.RunningFor}}: час роботи контейнера.
  • {{.Status}}: поточний стан контейнера.
  • {{.Ports}}: перенаправлені порти.
  • {{.Names}}: ім’я контейнера.

Приклади використання

Приклад 1: відображення лише ідентифікаторів контейнерів

Цей приклад відобразить лише ідентифікатори запущених контейнерів. Корисно для використання у скриптах.

Terminal


docker ps -q

Приклад 2: відображення контейнерів, запущених за останні 24 години

Terminal


docker ps --filter "since=24h" 

Приклад 3: відображення контейнерів з певним статусом та форматування виводу

Цей приклад відобразить таблицю з іменами контейнерів, їхнім статусом та перенаправленими портами для всіх запущених контейнерів.

Terminal


docker ps -f "status=running" --format "table {{.Names}}\t{{.Status}}\t{{.Ports}}" 

3.4 Практичні сценарії

1. Моніторинг запущених контейнерів

Коли у вас запущено кілька контейнерів, команда docker ps дозволяє швидко перевірити їх поточний стан і переконатися, що все працює коректно.

Terminal


docker ps 

2. Пошук і видалення зупинених контейнерів

Після завершення роботи контейнерів вони залишаються в системі доти, доки ви їх не видалите. Ви можете використовувати docker ps -a, щоб знайти всі зупинені контейнери, а потім видалити їх.

Terminal

docker ps -a -f "status=exited" 
docker rm $(docker ps -a -f "status=exited" -q)
    

3. Автоматизація завдань

Використання команди docker ps у скриптах дозволяє автоматизувати різні завдання адміністрування контейнерів. Наприклад, ви можете створювати звіти про стан контейнерів або автоматично перезапускати контейнери, якщо вони зупинені.

Terminal

if [ $(docker ps -q -f "name=my_container") ]; then
  echo "Container is running"
else
  docker start my_container
fi
    

Важливо! Цей “код” написаний у терміналі Linux. Можливо, тобі доведеться його вивчити.

Коментарі
ЩОБ ПОДИВИТИСЯ ВСІ КОМЕНТАРІ АБО ЗАЛИШИТИ КОМЕНТАР,
ПЕРЕЙДІТЬ В ПОВНУ ВЕРСІЮ