1. Зупинка всіх активних контейнерів
Зупиніть усі поточні активні контейнери однією командою:
#!/bin/bash
# Зупинити всі активні контейнери
docker stop $(docker ps -q)
docker ps -q
: Отримує ідентифікатори активних контейнерів.docker stop
: Зупиняє ці контейнери за їхніми ID.
2. Автоматичний запуск всіх контейнерів
Після перезавантаження системи або обслуговування швидко перезапустіть усі контейнери:
#!/bin/bash
# Запустити всі зупинені контейнери
docker start $(docker ps -aq)
docker ps -aq
: Повертає список всіх контейнерів, включаючи зупинені.docker start
: Запускає контейнери за їхніми ID.
3. Видалення зупинених контейнерів
Очистіть місце на диску, видаливши зупинені контейнери:
#!/bin/bash
# Видалити всі зупинені контейнери
docker rm $(docker ps -aq -f "status=exited")
docker ps -aq -f "status=exited"
: Фільтрує тільки зупинені контейнери.docker rm
: Видаляє ці контейнери.
4. Моніторинг використання ресурсів контейнерів
Відстежуйте використання CPU, пам'яті та мережі в режимі реального часу:
#!/bin/bash
# Моніторинг ресурсів усіх активних контейнерів
docker stats --all
docker stats
: Відображає живу статистику контейнерів.--all
: Включає як активні, так і зупинені контейнери.
5. Видалення "висячих" образів
Звільніть місце на диску, видаливши невикористовувані образи:
#!/bin/bash
# Видалити "висячі" образи
docker rmi $(docker images -q -f "dangling=true")
docker images -q -f "dangling=true"
: Знаходить невикористовувані образи.docker rmi
: Видаляє ці образи.
6. Резервне копіювання даних контейнера
Створіть резервну копію файлової системи контейнера у вигляді tar-архіву:
#!/bin/bash
# Резервне копіювання даних контейнера
CONTAINER_ID=$1
BACKUP_FILE="${CONTAINER_ID}_backup_$(date +%F).tar"
docker export $CONTAINER_ID > $BACKUP_FILE
echo "Резервна копія збережена у $BACKUP_FILE"
docker export
: Зберігає файлову систему контейнера у файл.- Вкажіть ID контейнера як аргумент.
7. Відновлення контейнера з резервної копії
Відновіть контейнер із tar-архіву:
#!/bin/bash
# Відновлення контейнера з резервної копії
BACKUP_FILE=$1
docker import $BACKUP_FILE restored_container:latest
echo "Контейнер відновлено як 'restored_container:latest'"
docker import
: Перетворює tar-файл у Docker-образ.- Цей образ можна використовувати для створення нових контейнерів.
8. Тимчасовий запуск контейнера
Запустіть контейнер, який автоматично видалиться після зупинки:
#!/bin/bash
# Запустити контейнер і видалити після завершення
IMAGE_NAME=$1
docker run --rm $IMAGE_NAME
--rm
: Видаляє контейнер після його зупинки.- Ідеально підходить для одноразових завдань.
9. Автоматичне очищення невикористаних ресурсів
Заплануйте регулярне очищення невикористаних ресурсів Docker:
#!/bin/bash
# Очищення невикористаних ресурсів
docker system prune -f --volumes
docker system prune
: Видаляє невикористані контейнери, образи та мережі.--volumes
: Видаляє також невикористовувані томи.
10. Перегляд логів всіх контейнерів
Перегляньте логи з кількох контейнерів в одному виводі:
#!/bin/bash
# Відображення логів усіх контейнерів
docker ps -q | xargs -I {} docker logs {}
docker ps -q
: Отримує ID активних контейнерів.xargs
: Передає ID у командуdocker logs
.
11. Перезапуск всіх контейнерів
Швидко перезапустіть усі активні контейнери:
#!/bin/bash
# Перезапустити всі контейнери
docker restart $(docker ps -q)
docker restart
: Зупиняє та запускає контейнери за їхніми ID.
12. Оновлення запущених контейнерів
Оновіть контейнери до останньої версії їхнього образу:
#!/bin/bash
# Оновити запущений контейнер
CONTAINER_NAME=$1
IMAGE_NAME=$(docker inspect --format='{{.Config.Image}}' $CONTAINER_NAME)
docker pull $IMAGE_NAME
docker stop $CONTAINER_NAME
docker rm $CONTAINER_NAME
docker run -d --name $CONTAINER_NAME $IMAGE_NAME
docker inspect
: Отримує ім'я образу контейнера.- Скрипт завантажує останній образ і відтворює контейнер.
13. Копіювання файлів із контейнера
Експортуйте файли або каталоги з контейнера на хост:
#!/bin/bash
# Копіювати файли з контейнера
CONTAINER_ID=$1
SOURCE_PATH=$2
DEST_PATH=$3
docker cp $CONTAINER_ID:$SOURCE_PATH $DEST_PATH
echo "Скопійовано $SOURCE_PATH з $CONTAINER_ID у $DEST_PATH"
docker cp
: Переносить файли між контейнером і хостом.- Вкажіть ID контейнера, шлях джерела та місце призначення.
14. Перегляд відкритих портів
Перевірте, які порти відкриті у запущених контейнерах:
#!/bin/bash
# Показати відкриті порти
docker ps --format '{{.ID}}: {{.Ports}}'
docker ps --format
: Виводить ID контейнерів і їхні порти.
15. Автоматичний перезапуск контейнера
Налаштуйте контейнер на автоматичний перезапуск після збою:
#!/bin/bash
# Налаштування автоматичного перезапуску контейнера
CONTAINER_NAME=$1
docker update --restart always $CONTAINER_NAME
echo "$CONTAINER_NAME тепер автоматично перезапускається у разі збою."
docker update --restart always
: Задає політику перезапуску.- Вкажіть ім'я контейнера як аргумент.