Docker

Docker CLI — Глобальні параметри

Параметр Назва Опис
Глобальні прапори CLI
docker Docker CLI Основна команда Docker CLI. Усі інші команди Docker є підкомандами цього виконуваного файлу. Docker діє як обгортка для управління Docker Engine через REST API. Основні категорії: container, image, network, volume, compose, swarm, system. Для перегляду всіх доступних підкоманд використовуйте docker --help. Пріоритет виконання: глобальні прапори → підкоманда → аргументи підкоманди. Приклад: docker ps — список контейнерів, docker image ls — список образів, docker volume create mydata — створити том
docker --config <path> Каталог конфігурації Docker Вказує альтернативний шлях до каталогу конфігурації Docker CLI. За замовчуванням ~/.docker. Містить: config.json (облікові дані реєстру), contexts/ (збережені контексти), tls/ (TLS сертифікати). Корисно для ізольованого налаштування різних середовищ (dev/staging/prod). При вказівні власного конфігурації, CLI не завантажує основний config.json. Приклад: docker --config ~/.docker-dev ps — використовує конфігурацію з профілю dev. Для створення нового конфігурації: mkdir ~/.docker-staging && docker --config ~/.docker-staging login. Дозволяє зберігати окремі облікові дані для кожного середовища
docker -c <context>, docker --context <context> Контекст Docker Використовує вказаний контекст Docker для виконання команди. Контекст — це шаблон, який зберігає інформацію про демон Docker (кінцева точка, налаштування TLS, авторизація). Дозволяє перемикатися між різними середовищами без зміни змінних середовища. Перелік контекстів: docker context ls. Управління: docker context create, docker context use. Вбудовані контексти: default (локальний демон), desktop-linux (Docker Desktop). Приклад: docker --context prod ps — показує контейнери на сервері продукції. Рекомендація: docker context create staging --docker host=ssh://staging@example.com — створює контекст для staging сервера
docker -D, docker --debug Режим налагодження Вмикає режим налагодження CLI, який виводить детальну інформацію про налагодження: HTTP запити до Docker API, заголовки, тіла відповідей, час. Корисно при налагодженні проблем підключення, помилок API, TLS проблем. Виведення налагодження направлено в stderr, дозволяючи перенаправити у файл. Рівень журналу Docker Engine також можна підвищити через /etc/docker/daemon.json з "log-level": "debug". Приклад: docker -D build . 2> debug.log — зберегти виведення налагодження у файл. Для постійного активації встановіть DOCKER_DEBUG=1 у змінних середовища. Примітка: може викрити чутливі дані (токени, паролі) у виведенні
docker -H <host>, docker --host <host> Хост демона Docker Підключатися до віддаленого демона Docker замість локального за замовчуванням (unix:///var/run/docker.sock). Підтримуються протоколи: SSH (ssh://user@host), TCP (tcp://host:port), Unix сокет (unix:///path/to/socket), TLS захищений TCP (tls://host:port). TLS необхідний для захищеного підключення. Приклад: docker -H tcp://10.0.0.5:2376 ps — підключитися до віддаленого демона. З SSH: docker -H ssh://user@192.168.1.10 ps (використовує SSH тунель). Попередження: незашифрований TCP (порт 2375) є небезпечним — усі дані передаються у відкритому вигляді
docker -l <level>, docker --log-level <level> Рівень журналу Встановлює рівень журналу Docker CLI. Доступні значення (у зростаючій серйозності): debug (відлагодження), info (інформація, за замовчуванням), warn (попередження), error (помилки), fatal (критичні помилки, вихід). Впливає лише на повідомлення CLI — не змінює рівень журналу Docker Engine. Корисно для фільтрації шуму при використанні в скриптах CI/CD. Приклад: docker --log-level warn ps — показує лише попередження та помилки. Значення також можна встановити через змінну DOCKER_LOGLEVEL=debug
Параметри TLS
docker --tls TLS підключення Вмикає TLS шифрування для підключення до демона Docker. Використовує сертифікати з $DOCKER_CERT_PATH або $DOCKER_CONFIG/tls/. Необхідний для безпечного віддаленого підключення. Без --tlsverify перевірка сервера не виконується (вразливий до MITM атак). Приклад: docker --tls --host tcp://10.0.0.5:2376 ps — підключається з шифруванням. Для генерації сертифікатів використовуйте docker-machine або swarm ca. Docker Desktop має TLS увімкнено за замовчуванням
docker --tlsverify TLS перевірка Вмикає TLS з обов'язковою перевіркою сертифіката сервера (взаємний TLS). Перевіряє автентичність сервера через CA сертифікат, захищаючи від атак підробки. Вимагає ca.pem у $DOCKER_CERT_PATH. Без цього прапора вразливий до MITM (Man-in-the-Middle). Приклад: docker --tlsverify --tlscacert /path/to/ca.pem --host tcp://prod-server:2376 ps. Для двобічної аутентифікації додайте --tlscert та --tlskey. У продукції завжди використовуйте з --tlsverify
docker --tlscacert <path> CA сертифікат TLS Шлях до CA (Центру сертифікації) сертифіката (ca.pem). Використовується для перевірки автентичності демона Docker. Сертифікат має бути підписаний довіреним центром сертифікації. Зазвичай генерується разом із клієнтськими сертифікатами. Приклад: docker --tlsverify --tlscacert /etc/docker/ca.pem --tlscert /etc/docker/cert.pem --tlskey /etc/docker/key.pem -H tcp://10.0.0.5:2376 ps. Якщо цей прапора відсутній, Docker шукає ca.pem у $DOCKER_CERT_PATH або ~/.docker/tls/. Для Docker Hub сертифікати завантажуються автоматично
docker --tlscert <path> Сертифікат TLS Шлях до клієнтського TLS сертифіката (cert.pem). Використовується для двобічної аутентифікації (взаємний TLS) — демон перевіряє автентичність клієнта. Разом з --tlskey формує SSL сертифікат. Приклад: docker --tlscert /etc/docker/cert.pem --tlskey /etc/docker/key.pem -H tls://prod:2376 ps. Сертифікат має бути підписаний тим же CA, що і демон. Для генерації: openssl req -newkey rsa:4096 -nodes -sha256 -keyout client.key -out client.csr, потім підписати через CA
docker --tlskey <path> Приватний ключ TLS Шлях до приватного ключа TLS клієнта (key.pem). Повинен відповідати сертифікату клієнта з --tlscert. Зберігайте ключ у безпечному місці з дозволами 600. Приклад: docker --tlscert /etc/docker/cert.pem --tlskey /etc/docker/key.pem --tlsverify --tlscacert /etc/docker/ca.pem -H tls://10.0.0.5:2376 ps. Якщо ключ скомпрометовано, негайно перегенеруйте всі сертифікати. Docker Desktop керує ключами автоматично

Основні команди Docker

Команда Назва Опис
docker version Версія Docker Показує версії Docker CLI та Engine. Виводить інформацію про Client та Server частини: версія, версія API, Go версія, Git commit, дата збірки, статус клієнта/сервера. Корисно для діагностики несумісності версій. Приклад: docker version — показує повну інформацію. --format прапора для форматування: docker version --format '{{.Client.Version}}'. Якщо демон не запущено, показує лише Client інформацію та помилку підключення
docker info Інформація про систему Docker Показує системну інформацію демона Docker: кількість контейнерів, кількість образів, статус swarm, драйвери за замовчуванням (сховище, мережа, журналування). Корисно для перевірки конфігурації та ресурсів. Приклад: docker info — повна інформація. Ключові розділи: Server Version, Storage Driver, Security Options, Total Memory, NRPE. --format ключ для вилучення конкретних полів: docker info --format '{{.ServerVersion}}'. Альтернатива: docker system info — також працює
docker help Довідка Docker Виводить довідку Docker CLI зі списком усіх доступних команд та опцій. Без аргументів показує загальну довідку. З аргументом — довідку для конкретної команди. Приклад: docker help run — довідка для docker run, docker --help — загальна довідка. Альтернатива: docker run --help. Також працює: docker help container ls. В інтерактивному режимі пропонує автодоповнення команд (zsh/bash). Також доступно: docker MANIFEST для перегляду офіційної документації
docker login Вхід до реєстру Авторизація до Docker реєстру. Зберігає облікові дані у ~/.docker/config.json для подальших операцій pull/push. Приклад: docker login — вхід до Docker Hub, docker login registry.example.com -u myuser -p mypass — вхід до приватного реєстру. Прапори: --username, --password (або ввід через stdin для безпеки), --help. Для автоматизації CI: echo "$PASSWORD" | docker login -u "$USER" --password-stdin. Виведення не містить паролів
docker logout Вихід з реєстру Вихід з реєстру, видаляє збережені облікові дані з config.json. Корисно при зміні облікових записів або очищенні чутливих даних. Приклад: docker logout — вихід з Docker Hub, docker logout registry.example.com — вихід з конкретного реєстру. Після виходу усі операції з тим реєстром потребують повторної авторизації. Не видаляє TLS сертифікати чи контексти
docker search Пошук образів Пошук образів у Docker Hub. Підтримує фільтрацію за назвою, автором, рейтингом. Приклад: docker search nginx — пошук nginx, docker search --filter "stars=100" nginx — лише образи з 100+ зірками. Прапори: --filter (stars, is-automated, is-official), --format (table/raw/go-template), --limit (макс результатів), --no-trunc. Для програмної обробки: docker search --format '{{.Name}}:{{.Tag}}'. Також можна шукати у приватному реєстрі через API
docker inspect Перегляд об'єктів Отримати низькорівневу JSON інформацію про контейнер, образ, мережу, том або інший об'єкт Docker. Повертає повну конфігурацію та статус. Приклад: docker inspect mycontainer — повна інформація, docker inspect --format '{{.NetworkSettings.IPAddress}}' mycontainer — лише IP адреса. Типи об'єктів: container, image, network, volume, service, node. -f прапора для Go шаблонів, --type для фільтрації за типом об'єкта. Корисно для скриптів автоматизації та діагностики
docker events Потік подій Docker Поток подій Docker демона в реальному часі. Включає події створення/видалення контейнерів, зміни статусу, мережі, тому. Приклад: docker events — потік подій, docker events --filter 'type=container' --filter 'event=start' — лише запуски контейнерів. Прапори: --filter (мультиплекс), --since (дата/час), --until, --format. Корисно для моніторингу, автоматизації, логування. Для фільтрації у скриптах: docker events --filter 'image=nginx' | grep start
docker system Управління системою Docker Управління системою Docker: очищення, моніторинг диска, інформація. Підкоманди: df (аналог df -h), prune (очищення непотрібних об'єктів), info (інформація про систему). Приклад: docker system df — використання диска, docker system prune -a — видалити всі непотрібні об'єкти. Для очищення: docker system prune --volumes (включаючи тони). Корисно для звільнення дискового простору та підтримки системи в чистоті
docker context Контексти Docker Управління контекстами для перемикання між різними деконами Docker. Підкоманди: create (створити), inspect (переглянути), rm (видалити), use (активувати), update (оновити). Приклад: docker context create prod --docker host=tcp://10.0.0.5:2376. Вбудовані контексти: default (локальний Docker), desktop-linux (Docker Desktop). Контексти зберігаються у ~/.docker/contexts/. Корисно для роботи з кількома середовищами
docker init Ініціалізація проекту Інтерактивна генерація стартових Docker файлів для проекту: Dockerfile, docker-compose.yml, .dockerignore. Автоматично визначає тип проекту (Node.js, Python, Go, Java, тощо) та створює оптимізовані файли. Приклад: docker init — у поточному каталозі, docker init --mode complete — без запитань. Створює: Dockerfile (з багатоетапною збіркою), docker-compose.yml (з сервісами), .dockerignore, .env. Також можна вказати образ: docker init --image nginx. Документація: docker init docs
docker debug Налагодження контейнера Налагодження shell для контейнера/образа. Запускає інтерактивну сесію налагодження контейнера з доступом до файлової системи та інструментів. Приклад: docker debug mycontainer — налагодження контейнера, docker debug ubuntu — налагодження образу. Запускає nerdctl — альтернативний клієнт з розширеними можливостями. Включає доступ до strace, ltrace, gdb для глибокої діагностики. Корисно для дослідження вмісту образу та контейнера
docker buildx Builder Buildx Розширений BuildKit builder з підтримкою багатоархітектурної збірки, управління кешем та CI інтеграції. Це сучасний спосіб збірки Docker образів. Приклад: docker buildx build --platform linux/amd64,linux/arm64 -t myapp:latest . — багатоархітектурна збірка. Підкоманди: build (збірка), ls (список), create (створити builder), inspect, rm, use, prune. BuildKit забезпечує кешування шарів, секретні змінні, SSH-Forwarding, експорт кешу. Документація: BuildKit docs
docker builder Управління збіркою Управління екземплярами builder. Дозволяє створювати, налаштовувати та видаляти екземпляри BuildKit builder для різних завдань. Приклад: docker builder ls — список builder, docker builder create mybuilder --driver docker-container. Підкоманди: ls, create, inspect, rm, prune, use, update. Корисно для ізоляції процесів збірки, управління ресурсами та оптимізації конвеєра збірки. Альтернатива: docker buildx

Команди контейнерів Docker

Команда Назва Опис
docker container ls Список контейнерів Список запущених контейнерів. Аналог docker ps. Прапори: -a (усі контейнери), -n (останні N), --filter (за статусом, назвою, мережею, тощо), --format (формат виведення). Приклад: docker container ls — лише запущені, docker container ls -a — усі, docker container ls --filter "status=running" — лише запущені. Виведення: CONTAINER ID, IMAGE, COMMAND, CREATED, STATUS, PORTS, NAMES. Корисно для моніторингу поточних контейнерів та діагностики
docker container ls -a Список усіх контейнерів Список усіх контейнерів включаючи зупинені та створені. Показує повний статус: Created, Running, Paused, Exited, Dead. Корисно для очищення непотрібних контейнерів або пошуку видалених. Приклад: docker container ls -a --filter "status=exited" — лише зупинені. --size прапора показує розміри даних контейнера. Можна поєднувати з docker rm для очищення: docker container ls -a --filter "status=exited" -q | xargs docker rm
docker container run Запуск контейнера Створити та запустити контейнер. Створює новий екземпляр з образу з вказаною конфігурацією. Приклад: docker container run --name web -p 8080:80 -d nginx. Основні прапори: -d (detached), -it (інтерактивний TTY), --name, -p (порти), -v (тони), -e (змінні), --network, --restart, --memory, --cpus. Порядок прапорів має значення: глобальні → run-специфічні → образ → команда. Якщо образ не знайдено локально, автоматично виконує docker pull. Для фонових процесів використовуйте -d, для інтерактивного доступу -it
docker container create Створити контейнер Створити контейнер без запуску. Корисно для налаштування параметрів перед запуском, тестування образів, створення скриптів. Приклад: docker container create --name mycontainer -v /data:/data nginx. Контейнер можна запустити пізніше: docker container start mycontainer. Повертає ID контейнера. Можна перевірити конфігурацію: docker container inspect mycontainer. Корисно в CI/CD для створення базових образів з налаштованими тонами та мережами
docker container start Запустити контейнер Запустити раніше створений або зупинений контейнер. Приклад: docker container start mycontainer — звичайний запуск, docker container start -a mycontainer — з приєднаним виведенням, docker container start -i mycontainer — інтерактивний запуск. --attach прапора приєднує stdout/stderr, --interactive — stdin. Можна запустити кілька контейнерів: docker container start c1 c2 c3. Для автоматичного запуску при завантаженні системи використовуйте --restart при створенні контейнера
docker container stop Зупинити контейнер Зупинити контейнер, надсилаючи SIGTERM сигнал. Контейнер отримує час для graceful shutdown (за замовчуванням 10 секунд, потім SIGKILL). Приклад: docker container stop mycontainer, docker container stop -t 30 mycontainer — 30 секунд для shutdown. --time прафора встановлює таймаут. Можна зупинити кілька: docker container stop $(docker container ls -q). Після зупинки контейнер залишається — використовуйте docker rm для видалення. У продукції завжди використовуйте stop замість kill
docker container restart Перезапустити контейнер Перезапустити контейнер: stop + start. Корисно для застосування змін конфігурації без видалення контейнера. Приклад: docker container restart mycontainer, docker container restart -t 30 mycontainer. --time прапора встановлює таймаут для graceful shutdown. Можна перезапустити кілька: docker container restart $(docker container ls -q --filter "name=web"). При використанні з --restart=always або --restart=unless-stopped контейнер автоматично перезавантажується при аваріях
docker container rm Видалити контейнер Видалити контейнер. Контейнер має бути зупинений (або використайте -f). Приклад: docker container rm mycontainer, docker container rm -f mycontainer — примусове видалення. Прапори: -f (примус), -v (видалити тони), --link (видалити посилання). Можна видалити кілька: docker container rm c1 c2 c3. Для очищення всіх зупинених контейнерів: docker container prune. Попередження: видалення незворотне — усі дані поза тонами будуть втрачені
docker container exec Виконати команду Виконати команду всередині запущеного контейнера. Корисно для налагодження, запуску додаткових процесів, виконання скриптів. Приклад: docker container exec -it mycontainer bash — інтерактивна сесія, docker container exec mycontainer ls -la /app — виконати команду. Прапори: -i (stdin), -t (TTY), -u (користувач), --env, --workdir. Для фонових процесів без -it: docker container exec mycontainer touch /tmp/file.txt. Можна виконати будь-яку команду, встановлену в образі
docker container logs Логи контейнера Переглянути логи контейнера. Виводить stdout/stderr контейнера. Приклад: docker container logs mycontainer — останні логи, docker container logs -f mycontainer — режим follow (tail -f), docker container logs --tail 100 mycontainer — останні 100 рядків. Прапори: -f (follow), --tail (кількість рядків), --since (час), --timestamps (часові мітки). Для перегляду логів з помилками: docker container logs mycontainer 2>&1 | grep -i error. Для контейнерів з --restart=always логи зберігаються у /var/lib/docker/containers/
docker container top Запущені процеси Список процесів контейнера. Аналог ps aux всередині контейнера. Приклад: docker container top mycontainer. Виведення: PID, PPID, USER, CMD. Корисно для моніторингу ресурсів контейнера та виявлення підозрілих процесів. Прапори залежать від ОС: Unix — -l (пакети), Windows — -l (бібліотеки). Альтернатива для детальної інформації: docker container stats mycontainer або docker exec mycontainer ps aux
docker container stats Використання ресурсів Моніторинг CPU/RAM використання контейнерів у реальному часі. Приклад: docker container stats — усі контейнери, docker container stats mycontainer — один контейнер, docker container stats --no-stream — одноразове виведення. Показує: CONTAINER, CPU %, MEM USAGE/LIMIT, NET I/O, BLOCK I/O, PIDs. Для моніторингу у скрипті: docker container stats --no-stream --format "{{.Name}}: {{.CPUPerc}}". Показує мережевий та блоковий I/O. Корисно для виявлення вузьких місць та оптимізації ресурсів
docker container cp Копіювати файли Копіювати файли між хостом та контейнером. Приклад: docker container cp mycontainer:/app/config.yml ./config.yml — з контейнера, docker container cp ./file.txt mycontainer:/tmp/ — у контейнер. Прапори: -a (archive режим), -L (слідувати за симвоолічними посиланнями). При копіюванні каталогу: docker container cp ./dir mycontainer:/tmp/. Для створення архіву всередині: docker container cp mycontainer:/app .. Працює з зупиненими контейнерами. Для копіювання файлів з образу (перед створенням контейнера), використовуйте docker create + docker cp + docker rm
docker container rename Перейменувати контейнер Перейменувати контейнер. Корисно для зміни назви без перестворення контейнера. Приклад: docker container rename old_name new_name. Контейнер зберігає всю конфігурацію, IP адресу (в мережі), тони. Не можна перейменувати в існуючу назву. Працює як з запущеними, так і з зупиненими контейнерами. Альтернатива в docker-compose: name або container_name в yaml. Не впливає на hostname контейнера (встановлюється через --hostname)
docker container pause Призупинити контейнер Призупинити контейнер використовуючи cgroups freezer. Усі процеси контейнера призупиняються у поточному стані. Приклад: docker container pause mycontainer. Корисно для створення консистентних знімків, тимчасової зупинки без втрати даних. Для продовження: docker container unpause mycontainer. Неможливо виконувати команди в призупиненому контейнері (exec не працює). Дані у файловій системі та пам'яті зберігаються на момент призупинення. Альтернатива: kill -STOP всередині контейнера
docker container unpause Відновити контейнер Продовжити призупинений контейнер. Усі процеси продовжують виконання з точки призупинення. Приклад: docker container unpause mycontainer. Контейнер відновлюється з використанням ресурсів, ніби його ніколи не призупиняли. Точний час призупинення = час відновлення (втрати виконання немає). Можна лише відновити раніше призупинені контейнери
docker container kill Вбити контейнер Примусово завершити контейнер. Надсилає SIGTERM сигнал (за замовчуванням) процесам контейнера. Приклад: docker container kill mycontainer, docker container kill -s SIGINT mycontainer — надіслати SIGINT. --signal прапора дозволяє вибрати сигнал: SIGINT, SIGTERM, SIGKILL, тощо. На відміну від stop — немає graceful shutdown, контейнер завершується миттєво. Використовуйте лише коли stop не допоміг. Може призвести до втрати даних або пошкодження файлової системи
docker container wait Чекати контейнер Чекати поки контейнер завершиться. Блокує виконання поки контейнер не завершиться та повертає код виходу. Приклад: docker container wait mycontainer — чекає та повертає код виходу. Можна чекати кілька: docker container wait c1 c2 c3. Корисно в скриптах для синхронізації: docker run --rm myimage & CID=$!; docker wait $CID; echo "Exit: $?". Використовується в Docker Compose для логіки depends_on. Контейнер може бути запущений або створений
docker container prune Видалити зупинені контейнери Видалити всі зупинені контейнери. Безпечне — видаляє лише контейнери зі статусом Exited або Dead. Приклад: docker container prune — з підтвердженням, docker container prune -f — без підтвердження. --filter прапора для фільтрації: docker container prune --filter "until=24h" — видалити контейнери, зупинені 24 год. тому. Не видаляє контейнери з прикріпленими тонами (за замовчуванням). Альтернатива: docker rm $(docker ps -aq --filter "status=exited"). Рекомендовано для регулярного очищення

docker run — Основні параметри

Параметр Назва Опис
-d, --detach Detached режим Запустити контейнер у фоні (detached). Негайно повертає ID контейнера у stdout після запуску. Контейнер продовжує працювати після закриття терміналу. Приклад: docker run -d --name web nginx. Без -d контейнер працює у foreground та блокує термінал. Для управління detached контейнером: docker logs -f для логів, docker attach для підключення. Не працює з --rm в деяких версіях Docker. Для моніторингу: docker stats
-it Інтерактивний термінал Інтерактивний TTY режим. Комбінація -i (інтерактивний — відкриває stdin) + -t (tty — виділяє псевдо-термінал). Дозволяє взаємодіяти з контейнером як з регулярним shell. Приклад: docker run -it ubuntu bash — інтерактивний bash всередині контейнера, docker run -it alpine — sh без аргументу. Для вимкнення виведення логів без -d: -i. Для підключення до запущеного контейнера: docker exec -it mycontainer bash. Без -t не буде кольорового виведення та роботи терміналу
--name <name> Назва контейнера Іменований контейнер замість випадкового ID. Назва використовується для посилань у Docker Compose та мережі, для зручного управління. Приклад: docker run --name my-web -d nginx, docker stop my-web. Назва має бути унікальною — не можна створити контейнер з існуючою назвою. Для перевірки: docker ps --filter "name=my-web". Можна змінити: docker rename. В docker-compose, name визначається сервісом автоматично. Назви не можуть містити / та мають починатися з літери або символу
-p <host-ip:host-port:container-port>, --publish <host-ip:host-port:container-port> Мапування портів Переадресація портів з хоста на контейнер. Дозволяє зробити сервіс всередині контейнера доступним із зовні. Приклад: -p 8080:80 — доступ до порту 80 контейнера через порт 8080 хоста, -p 127.0.0.1:8080:80 — лише локальний доступ. Синтаксис: [-p ip:hostPort:containerPort | hostPort:containerPort]. Підтримуються протоколи: -p 8080:80/tcp, -p 53:53/udp. Кілька портів: -p 8080:80 -p 8443:443. Проблеми: порт може бути використаний (netstat -tulpn, права (<1024)
-P Опублікувати всі порти Автоматично опублікувати всі EXPOSE порти з Dockerfile на випадкових портах хоста. Корисно для тестування та тимчасового доступу. Приклад: docker run -P myapp, потім перевірити: docker port mycontainer. Кожен порт призначається випадковим високим портом. Якщо Dockerfile має EXPOSE 80 443, обидва будуть маповані. Для перевірки: docker inspect --format '{{range $p, $_ in .Config.ExposedPorts}}{{$p}} {{end}}' container. Порт може конфліктувати — якщо використаний, призначається інший
-v <source>:<destination>[:ro], --volume <source>:<destination>[:ro] Монтування тому Монтувати шлях/том хоста у контейнер. Дані зберігаються після видалення контейнера. Типи: іменований том, bind mount, tmpfs. Приклади: -v data:/var/lib/data (іменований том — автоматично створюється), -v ~/.ssh:/root/.ssh:ro (bind mount з read-only), -v /host/path:/container/path (bind mount). Прапори: :ro (read-only), :Z (SELinux), :z (SELinux shared). Bind mount залежить від ОС, іменований том є переносним. Bind mount дані можуть потребувати правильних дозволів (UID/GID)
--mount type=<bind|volume|tmpfs>,src=<name>,dst=<path> Розширене монтування Сучасний синтаксис монтування. Більш читабельний та надійний ніж -v. Типи: bind (шлях хоста), volume (іменований том), tmpfs. Приклади: --mount type=volume,src=data,dst=/var/lib/data — іменований том, --mount type=bind,src=/etc/ssl,dst=/etc/ssl,readonly — bind mount, --mount type=tmpfs,dst=/tmp,tmp-size=50M — tmpfs. Прапори: readonly, volumeopt=key=value для параметрів тому. Розділяє джерело та призначення — дозволяє створити том без шляху хоста. Важче читати з багатьма тонами
-e <KEY>=<VALUE>, --env <KEY>=<VALUE> Змінна середовища Передати змінні середовища у контейнер. Переопреділяє ENV з Dockerfile. Приклад: -e DB_HOST=postgres -e DB_PORT=5432. Можна передати змінні з хоста: -e $(printenv | grep DB_). --env-file прафора завантажує з файлу. Важливо для конфігурації додатків без пересборки образу. Змінні доступні всередині як звичайні змінні середовища. Не використовуйте для паролів у команді (видно у ps) — використовуйте --env-file або secrets. Підтримує типізацію через int/float перетворення в додатку
--env-file <path> Файл змінних середовища Завантажити змінні середовища з файлу. Кожний рядок файлу: KEY=VALUE або KEY (береться з хоста). Зручно для зберігання чутливих даних та великих конфігурацій. Приклад: --env-file .env, --env-file config/database.env. Формат файлу: DB_HOST=postgres, DB_PORT=5432, # comment. .env файли зазвичай включаються у .dockerignore. Пріоритет: -e > --env-file > Dockerfile ENV. Змінні з файлу переопреділяють системні змінні середовища
--restart <policy> Політика перезапуску Політика перезапуску контейнера після зупинки. Значення: no (ніколи, за замовчуванням), on-failure[:max-retries] (при помилці), always (завжди), unless-stopped (завжди окрім ручної зупинки). Приклад: --restart unless-stopped — автоматично перезавантажується окрім ручної зупинки. --restart on-failure:5 — максимум 5 спроб. Важливо для продукції — забезпечує відмовостійкість. Працює при перезавантаженні хоста. Не працює з --rm. Перевірка: docker inspect --format '{{.HostConfig.RestartPolicy.Name}}' container. В docker-compose: restart: always
--network <network> Вибір мережі Підключитися до мережі Docker. Типи: bridge (за замовчуванням), host (спільний з хостом), none (без мережі), назва кастомної мережі. Приклад: --network my-net, --network host (без портів), --network none (ізоляція). Для комунікації контейнерів використовуйте кастомні мережі — DNS ім'я = ім'я сервісу. Контейнери на default bridge не можуть резолвити імена один одного. Для multi-host: --network=overlay у swarm. Альтернатива: --network-alias для додаткових імен
--ip <IP> Статичний IP Статична IP адреса для контейнера. Працює лише з кастомною bridge мережею (не з default bridge). Приклад: --ip 172.20.0.100 --network my-net. IP має належати підмережі мережі. Якщо IP використаний — помилка. Корисно для додатків, що вимагають фіксований IP (ліцензування, фаєрволи). Перевірка: docker inspect --format '{{.NetworkSettings.Networks.my-net.IPAddress}}' container. За замовчуванням Docker призначає випадковий IP з пулу
--hostname <name> Ім'я хоста Ім'я хоста контейнера. Встановлює hostname всередині контейнера. Впливає на команду hostname та /etc/hostname. Приклад: --hostname myserver. За замовчуванням використовує ID контейнера (перші 12 символів). Корисно для додатків, що використовують hostname для ідентифікації. Змінює лише внутрішній hostname — не DNS в мережі. В docker-compose: визначається hostname. Для зміни в запущеному контейнері: docker exec hostname newname
--dns <IP> DNS сервер DNS сервер всередині контейнера. Переопреділяє DNS з конфігурації Docker демона. Приклад: --dns 8.8.8.8 --dns 8.8.4.4 — Google DNS, --dns 1.1.1.1 — Cloudflare DNS. Можна вказати до 3 DNS серверів. Корисно для внутрішнього DNS (CoreDNS, BIND). Перевірка: docker exec container cat /etc/resolv.conf. Для пошуку Docker мережі: --dns-search example.com. Якщо DNS не налаштовано, використовує DNS хоста (/etc/resolv.conf). Працює лише при створенні контейнера
--memory <size> Ліміт пам'яті Ліміт RAM для контейнера. Підтримуються суфікси: b, k, m, g. Приклад: --memory 512m, --memory 2g, --memory 1024k. Без ліміту — повний доступ до RAM хоста. Якщо перевищено, контейнер може бути вбитий OOM killer. Для swap: --memory-swap (повинен бути ≥ --memory). Для сумісності: --oom-kill-disable (не рекомендовано). Перевірка: docker stats. Для продукції: завжди встановлюйте --memory для стабільності. У swarm: deploy.resources.reservations.memory
--cpus <count> Ліміт CPU Ліміт ресурсів CPU для контейнера. Приклад: --cpus 1.5 — 1.5 ядра, --cpus 4 — 4 ядра. За замовчуванням контейнер використовує весь доступний CPU. Значення може бути дробовим для тонкої налаштування. Для ліміту конкретних ядер: --cpuset-cpus "0,1". Перевірка: docker stats, docker top. В docker-compose: cpus: 1.5. Працює з cgroups v1/v2. Альтернатива: --cpu-shares (відносний вага)
--privileged Привілейований режим Підвищені привілеї: контейнер отримує доступ до всіх пристроїв хоста, вимикає обмеження безпеки (AppArmor, seccomp, capabilities). Використовувати лише для спеціальних випадків (Docker-in-Docker, налагодження). Приклад: docker run --privileged myimage. Безпека: контейнер може стати root на хості. Для обмежених привілеїв: --cap-add замість цього. У swarm: privileged: true у конфігурації сервісу. Завжди оцінуйте ризики використання
--user <UID>[:<GID>] Користувач всередині контейнера Запустити від конкретного UID/GID замість UID 0 (root за замовчуванням). Приклад: --user 1000:1000, --user nobody. Корисно для безпеки та доступу до монтованих томів з правильними дозволами. Якщо не вказано — використовує образ (Dockerfile USER). Перевірка: docker exec id. В docker-compose: user: "1000:1000". Для образів без USER директиви — за замовчуванням root
--workdir <path> Робочий каталог Робочий каталог всередині контейнера. Переопреділяє WORKDIR з Dockerfile. Приклад: --workdir /app. Аналог cd при запуску контейнера. Усі відносні шляхи в команді будуть від workdir. Корисно для організації файлової структури. В docker-compose: workdir: /app. Не можна використовувати в ENTRYPOINT — використовується при запуску команди. Перевіряє існування каталогу
--rm Автовилучення Автоматично видалити контейнер після зупинки. Зручно для одноразових задач. Приклад: docker run --rm myimage command. Не працює з -d та -it разом — контейнер буде видалений миттєво. Корисно в CI/CD та скриптах: docker run --rm postgres:15 psql -h db -c "SELECT 1". Контейнер не з'являється у docker ps -a. Для збереження результатів використовуйте тони. Після --rm контейнер можна інспектувати лише під час виконання
--platform <os/arch[/variant]> Цільова платформа Багатоархітектурна платформа для збірки/запуску на конкретній архітектурі. Приклад: --platform linux/amd64, --platform linux/arm64. Корисно для кросплатформної розробки та емуляції. Коли pull/build визначає архітектуру образу. Для списку доступних: docker buildx ls --drivers. Помилка на несумісність: No matching manifest. В CI: --platform для перевірки на різних архітектурах. Також: DOCKER_DEFAULT_PLATFORM змінна середовища
--health-cmd <command> Команда перевірки здоров'я Команда для перевірки здоров'я контейнера. Повертає 0 = healthy, 1 = unhealthy. Приклад: --health-cmd "curl -f http://localhost/ || exit 1", --health-cmd "pg_isready". Перевірки починаються після --health-interval. Статус можна перевірити: docker inspect --format '{{.State.Health.Status}}' container. За замовчуванням вимкнено. Для Dockerfile: HEALTHCHECK CMD curl -f http://localhost/ || exit 1. Корисно у swarm та docker-compose для автоматичного перезавантаження
--health-interval <duration> Інтервал перевірки здоров'я Інтервал перевірки здоров'я. Приклад: --health-interval 30s, --health-interval 5m. Також: --health-timeout (таймаут для кожної перевірки), --health-retries (повторні спроби для unhealthy). За замовчуванням 0s (вимкнено). Повний приклад: --health-cmd "curl -f http://localhost/" --health-interval 30s --health-timeout 10s --health-retries 3. В docker-compose: healthcheck: { test, interval, timeout, retries }
--entrypoint <command> Переопередження entrypoint Замінити ENTRYPOINT з Dockerfile. Корисно для запуску контейнера з іншою основною командою. Приклад: --entrypoint bash для запуску в bash замість команди образу, --entrypoint "" — очистити entrypoint. В docker-compose: entrypoint: /bin/bash. Entrypoint + CMD = повна команда запуску. Переопреділяє лише entrypoint, CMD з образу зберігається. Для очищення CMD: --entrypoint "" --command "нова команда". Entrypoint запускається як PID 1

Команди образів Docker

Команда Назва Опис
docker image ls Список образів Список усіх локальних образів. Прапори: -a (усі шари, включаючи проміжні), --filter (за міткою, digest, творцем), --format (table/raw/go-template), --no-trunc. Приклад: docker image ls — основні образи, docker image ls -a — усі, docker image ls --filter "dangling=true" — dangling образи. Виведення: REPOSITORY, TAG, IMAGE ID, CREATED, SIZE. Для пошуку конкретного: docker image ls --format '{{.Repository}}:{{.Tag}}' | grep nginx. Корисно для аудиту та очищення дискового простору
docker image pull Завантажити образ Завантажити образ з реєстру (Docker Hub, приватний реєстр). Приклад: docker image pull nginx — latest тег, docker image pull nginx:1.25 — конкретна версія, docker image pull registry.example.com/myapp:v1. Підтримує digest: docker image pull nginx@sha256:... для точно версії. Прапори: --platform (архітектура), --all-tags (усі теги). При pull шари завантажуються паралельно. Для прискорення: налаштуйте mirror у /etc/docker/daemon.json. Якщо образ вже існує — перевіряється digest, не завантажується знову
docker image push Відправити образ Відправити образ у реєстр. Потребує авторизації (docker login). Приклад: docker image push myapp:v1, docker image push registry.example.com/myapp:latest. Спочатку створіть тег: docker image tag myapp:v1 registry.example.com/myapp:v1. Push завантажує шари поступово — незмінені шари не перезавантажуються. Для багатоархітектурного: docker buildx build --push --platform .... Обмеження Docker Hub rate: 100 pull/6h (анонімний), 200 (автентифікований). Приватний реєстр потребує HTTPS або --insecure-registry
docker image build Зібрати образ Зібрати образ з Dockerfile. Аналог docker build. Приклад: docker image build -t myapp:v1 .. Прапори: -t (тег), -f (шлях Dockerfile), --build-arg, --network, --cache-from. За замовчуванням шукає Dockerfile у поточному каталозі. Результат — локальний образ з вказаним тегом. Для багатоетапної збірки: --target production. Кеш збірки прискорює повторні збірки. Для очищення після: docker image prune. Альтернатива: docker buildx build для розширених можливостей
docker image rm Видалити образ Видалити образ з локальної системи. Приклад: docker image rm myapp:v1, docker image rm nginx alpine myapp — кілька. Прапори: -f (примус), --no-prune. Не можна видалити образ, що використовується запущеним контейнером (використайте -f). Для dangling образів: docker image rm $(docker image ls -q --filter "dangling=true"). Якщо образ має тегованих батьків — лише тег видаляється. Для очищення: docker image prune -a. Видалення великих образів звільляє значний простір
docker image prune Видалити непотрібні образи Очищення dangling образів (без тегів). Без прапорів видаляє лише dangling. Приклад: docker image prune — dangling, docker image prune -a — усі непотрібні, docker image prune --all. --filter прафора для умов: docker image prune --filter "until=24h". -f прафора без підтвердження. Видаляє образи, що не використовуються жодним контейнером. Включає проміжні шари. Використовуйте з обережністю — можуть знадобитися для пересбірки. Альтернатива: docker system prune — повне очищення
docker image inspect Переглянути образ JSON інформація про образ. Показує повну конфігурацію: архітектура, CMD, Env, Volumes, час створення, тощо. Приклад: docker image inspect nginx — масив, docker image inspect --format '{{.Config.Cmd}}' nginx. Корисні поля: .Architecture, .Config.ExposedPorts, .ContainerConfig, .RootFS.Layers. Для отримання ID: docker image inspect --format '{{.Id}}' nginx. Для шарів: docker image inspect --format '{{.RootFS.Layers}}' nginx. Можна використовувати в скриптах для автоматизації
docker image history Історія образу Історія шарів образу. Показує команди Dockerfile, що створили кожен шар. Приклад: docker image history nginx, docker image history --no-trunc nginx. Виведення: IMAGE, CREATED, CREATED BY, SIZE. Корисно для аналізу розміру образу та розуміння його збірки. ВЕЛИКІ шари видно у колонці SIZE. Для конкретного шару: docker image history --format '{{.ID}}: {{.CreatedBy}}' nginx. Якщо Dockerfile не збережено — можна відновити з історії. Альтернатива: docker buildx debug для інтерактивного дослідження
docker image tag Тег образу Створити тег для образу. Не створює копію — лише посилання. Приклад: docker image tag myapp:v1 myapp:latest, docker image tag myapp:v1 registry.example.com/myapp:v1. Синтаксис: docker image tag SOURCE[:TAG] TARGET[:TAG]. Корисно для версіонування, переміщення у реєстр. Тег можна змінити: docker image tag знову. Для видалення: docker image rm target:tag. Тег не впливає на розмір образу — це легке посилання
docker image save Зберегти образ Експортувати образ у tar архів. Корисно для передачі між машинами без реєстру. Приклад: docker image save -o myimage.tar myapp:v1, docker image save myapp:v1 nginx:alpine | gzip > images.tar.gz — кілька образів. Прапори: -o (вихід), --output. Отриманий tar можна скопіювати та завантажити на іншій машині. Містить усі шари, метадані, історію. Розмір = сума всіх шарів. Для стиснення використовуйте gzip або docker save | gzip. Не зберігає тони
docker image load Завантажити образ Імпортувати образ з tar архіву. Аналог docker load. Приклад: docker image load -i myimage.tar, docker image load < myimage.tar. Завантажує всі образи з архіву. Після load можна перевірити: docker image ls. Для стиснутого архіву: gzip -d < myimage.tar.gz | docker load. Теги зберігаються з архіву. Образы без тегів з'являються як . Не замінює реєстр — для CI/CD використовуйте реєстр

Команди збірки Docker

Параметр Назва Опис
docker buildx build Збірка BuildKit Сучасна збірка BuildKit з розширеними можливостями. Підтримує багатоархітектурну збірку, експорт кешу, секрети, SSH forward. Приклад: docker buildx build --platform linux/amd64,linux/arm64 -t myapp:latest --push .. Це рекомендований спосіб збірки Docker. Можливості: паралельна збірка шарів, прогресивне виведення, інтеграція з GitHub Actions. Для активації: export DOCKER_BUILDKIT=1. Альтернатива: docker build (застарілий builder). BuildKit використовує демон docker-buildkit для ізоляції
--platform <os/arch[/variant]> [, <os/arch[/variant]>...] Багатоархітектурна збірка Зібрати багатоархітектурні образи. Приклад: --platform linux/amd64,linux/arm64. Результат — manifest list (багатоархітектурний образ). Корисно для підтримки різних архітектур в одному образі. При push створює manifest з кількома архітектурами. Pull без --platform вибере архітектуру хоста. Для налаштування: docker buildx create --use builder з підтримкою кількох архітектур. Помилка на несумісних шарах. В GitHub Actions: --platform linux/amd64,linux/arm64
--push Push після збірки Відправити образ у реєстр одразу після збірки. Аналог docker buildx build --push. Приклад: docker buildx build --platform linux/amd64 -t myapp:latest --push .. Корисно в CI/CD — одна команда для збірки + push. Потребує docker login. Без --push образ залишається локальним. Для кількох тегів: -t v1.0 -t latest --push. Push йде шар за шаром — незмінені шари не перезавантажуються. Для debug: видаліть --push та перевірте локально
--load Завантажити у локальний демон Завантажити образ локально після збірки. Для buildx, завантажує лише поточну архітектуру (на відміну від --push з багатоархітектурним). Приклад: docker buildx build --load -t myapp:latest .. Корисно коли потрібен образ локально без окремого docker image save/load. Завантажує у стандартний Docker демон. Швидше ніж --push + pull. Для багатоархітектурного + локального: використовуйте --load з однією архітектурою
--cache-from type=<inline|registry|local>,ref=<ref> Джерело кешу збірки Використовувати кеш збірки з іншого образу. Прискорює збірку шляхом повторного використання попередніх шарів. Приклад: --cache-from type=registry,ref=myapp:cache, --cache-from type=inline. Типи: inline (у manifest образу), registry (віддалений образ), local (локальний каталог). Корисно в CI для кешування між запусками. Працює з --cache-to для повного циклу. Кеш можна переглянути: docker buildx du. Без кешу — повна пересбірка
--cache-to type=<inline|registry>,dest=<dest> Експорт кешу збірки Експортувати кеш збірки для повторного використання. Приклад: --cache-to type=inline,dest=myapp:cache, --cache-to type=registry,dest=registry.example.com/myapp:cache. Записує кеш у manifest образу або реєстр. Працює з --cache-from для повного циклу. Корисно для оптимізації CI/CD. Після експорту кеш включається в наступну збірку. Розмір залежить від Dockerfile. Без --cache-to кеш втрачається після збірки
--target <stage-name> Ціль багатоетапної збірки Зібрати конкретний етап в багатоетапному Dockerfile. Дозволяє зібрати лише потрібну частину. Приклад: --target production — збирає лише фінальний етап, --target dev — етап розробки. В Dockerfile: FROM base AS builder, FROM production. Корисно для зменшення фінального образу (збірка в одному етапі, копіювання в інший). Без --target збирається останній етап. В CI: --target production для оптимізації
--build-arg <KEY>=<VALUE> Аргументи збірки ARG змінні для Dockerfile. Переопреділяє ARG з Dockerfile під час збірки. Приклад: --build-arg NODE_ENV=production --build-arg API_URL=https://api.com. В Dockerfile: ARG NODE_ENV, ENV NODE_ENV=$NODE_ENV. Можна вказати кілька: --build-arg KEY1=val1 --build-arg KEY2=val2. Змінні не зберігаються в образі (на відміну від ENV). Для перевірки: docker image inspect --format '{{.ContainerConfig.Environment}}'. Порожній ARG: --build-arg KEY=
--secret id=<id>,src=<file> Секрети збірки Секретні змінні BuildKit для безпечної передачі чутливих даних. Не потрапляють у шари образу. Приклад: --secret id=npmrc,src=.npmrc. В Dockerfile: RUN --mount=type=secret,id=mysecret cat /run/secrets/mysecret. Файл секрета не видно у docker image history. Підтримує: id (ідентифікатор), src (файл), env (змінна). В CI: docker buildx build --secret id=token,env=TOKEN .. Альтернатива: Docker Configs у swarm
--ssh [<default>|<name>=<socket>] SSH forward SSH forward під час збірки для доступу до приватних репозиторіїв. Приклад: --ssh default використовує host SSH-agent, --ssh mykey=/path/to/key. В Dockerfile: RUN --mount=type=ssh git clone git@github.com:user/repo.git. Корисно для клонування приватних репозиторіїв без токенів в образі. Працює з DOCKER_BUILDKIT=1. Для GitHub: ssh-add перед збіркою. Без --ssh Git через SSH не працює
-f <path>, --file <path> Шлях Dockerfile Шлях до Dockerfile. Дозволяє використовувати нестандартні назви або розташування. Приклад: -f Dockerfile.prod, -f ./dev/Dockerfile, -f /absolute/path/Dockerfile. За замовчуванням шукає Dockerfile у корені контексту. Підтримує stdin: cat Dockerfile | docker build -f - .. В docker-compose: dockerfile: Dockerfile.prod. Можна використовувати для різних середовищ: Dockerfile.dev, Dockerfile.test. При вказівні каталогу шукає Dockerfile всередині
-t <name>, --tag <name> Тег образу Тег зібраного образу. Можна вказати кілька тегів. Приклад: -t myapp:v1.0 -t myapp:latest. Формат: [registry/]repository[:tag]. Приклади: -t nginx:1.25, -t registry.example.com/myapp:v1. Теги можуть містити: літери, цифри, ._, -. Без тега — latest за замовчуванням. Для видалення: docker rmi tag. В CI: використовуйте semantic versioning -t 1.0.0 -t 1.0 -t 1 -t latest

Команди томів Docker

Команда Назва Опис
docker volume ls Список томів Список усіх томів. Показує DRIVER (local, rancher, тощо) та NAME. --filter driver=local прафора для фільтрації, --format для форматування. Приклад: docker volume ls — усі, docker volume ls --filter dangling=true — непотрібні. Виведення: DRIVER, VOLUME NAME. Для кількості: docker volume ls -q | wc -l. Для пошуку за назвою: docker volume ls -q | grep data. За замовчуванням усі тони використовують local драйвер. Кастомні драйвери: docker volume create --driver local
docker volume create Створити том Створити том для зберігання даних. Приклад: docker volume create mydata, docker volume create --opt "label=extra" mydata. Прапори: --driver (драйвер), --opt (параметри), --label. Том створюється у /var/lib/docker/volumes/. Після створення: docker run -v mydata:/data myimage. Для HTTPS/SSH драйверів: --driver. Не видаляється автоматично — потрібно створювати вручну. В docker-compose: тони створюються автоматично
docker volume inspect Переглянути том Інформація про том: mountpoint, driver, опції, мітки. Приклад: docker volume inspect mydata — JSON. Корисні поля: .Mountpoint (шлях на хості), .Labels, .Options. Для mountpoint: docker volume inspect --format '{{.Mountpoint}}' mydata. Корисно для монтування на хості або передачі даних. Також: docker inspect --format '{{.Mounts[0].Destination}}' container для контейнера. У продукції використовується для управління сховищем
docker volume rm Видалити том Видалити том. Том не повинен використовуватися контейнерами. Приклад: docker volume rm mydata, docker volume rm v1 v2. Прапори: -f (примус). Якщо том використовується — помилка. Для видалення використовуваного: docker rm -v container + docker volume rm. Альтернатива: docker volume prune. Попередження: видалення незворотне — усі дані втрачаються. Використайте docker inspect для перевірки
docker volume prune Видалити непотрібні тони Очищення непотрібних томів (не використовуються жодним контейнером). Приклад: docker volume prune — з підтвердженням, docker volume prune -f — без підтвердження. --filter прафора для умов. Корисно для звільнення простору. Видаляє лише тони зі статусом непотрібних. Не видаляє тони, що використовуються swarm сервісами. Для видалення всіх: docker volume prune --all. Перед видаленням перевірте: docker volume ls --filter dangling=true

Команди мереж Docker

Команда Назва Опис
docker network ls Список мереж Список усіх мереж. Включає вбудовані (bridge, host, none) та кастомні. Прапори: --filter (драйвер, scope), --format. Приклад: docker network ls — усі, docker network ls --filter driver=bridge. Виведення: NETWORK ID, NAME, DRIVER, SCOPE (local/swarm). Вбудовані: bridge (за замовчуванням), host (спільний простір), none (без мережі). Кастомні: docker network create. Scope: local (один хост), swarm (multi-host overlay)
docker network create Створити мережу Створити мережу для ізоляції та комунікації контейнерів. Приклад: docker network create --driver bridge my-net, docker network create --subnet=172.20.0.0/16 --ip-range=172.20.5.0/24 my-net. Драйвери: bridge (за замовчуванням), overlay (swarm/multi-host), macvlan (MAC-based), host, none. Прапори: --subnet, --gateway, --ip-range, --opt, --label. Контейнери в одній мережі можуть резолвити імена один одного за ім'ям сервісу/контейнера. Для swarm: --scope=swarm
docker network inspect Переглянути мережу Інформація про мережу: підмережі, шлюзи, підключені контейнери, драйвери. Приклад: docker network inspect my-net — JSON. Корисні поля: .IPAM.Config (підмережі), .Containers (підключені). Для IP конкретного контейнера: docker network inspect --format '{{range $k, $v := .Containers}}{{if eq $v.Name "mycontainer"}}{{$v.IPv4Address}}{{end}}{{end}}' my-net. Для debug: docker network inspect bridge — вбудована мережа. У swarm: docker network inspect --format '{{.Scope}}' net
docker network connect Підключити контейнер Підключити контейнер до мережі. Приклад: docker network connect my-net mycontainer. Можна вказати IP: --ip 172.20.0.100, мережевий alias: --alias web. Контейнер може бути підключений до кількох мереж. Після connect, контейнер отримує доступ до інших контейнерів у мережі за іменем. Для перевірки: docker network inspect my-net. Для авто-підключення: --network при створенні контейнера. Для swarm сервісів: docker service network
docker network disconnect Відключити контейнер Відключити контейнер від мережі. Приклад: docker network disconnect my-net mycontainer. Контейнер втрачає доступ до інших контейнерів у цій мережі. Для примусового відключення запущеного контейнера: --force. Контейнер може бути відключений від усіх мереж окрім host (неможливо). Контейнер залишається після disconnect. Для авто-відключення: --network при перестворенні. Корисно для ізоляції та безпеки
docker network rm Видалити мережу Видалити мережу. Мережа має бути порожньою (без підключених контейнерів). Приклад: docker network rm my-net, docker network rm n1 n2. Прапори: -f (примус). Для видалення з підключеними: спочатку docker network disconnect. Вбудовані мережі (bridge, host, none) не можна видалити. Для очищення: docker network prune. Після видалення всі мережеві конфігурації видаляються. Використовуйте для очищення
docker network prune Видалити непотрібні мережі Очищення непотрібних мереж (не використовуються жодним контейнером). Приклад: docker network prune — з підтвердженням, docker network prune -f — без підтвердження. Видаляє кастомні мережі. Не видаляє вбудовані (bridge, host, none). --filter прафора для умов. Корисно для очищення після docker-compose down. Альтернатива: docker-compose down --rmi all. Перед видаленням: docker network ls --filter dangling=true

Команди Docker Compose

Команда Назва Опис
docker compose up Запустити compose стек Запустити compose сервіси з docker-compose.yml. Приклад: docker compose up — створити + запустити, docker compose up -d — detached, docker compose up --build — пересобрати. Створює контейнери, мережі, тони за конфігурацією. За замовчуванням використовує docker-compose.yml. Прапори: -d, --build, --scale, --no-deps, --force-recreate. При зміні compose файлу — авто-перестворення. Для створення ресурсів: docker compose up --create-only. В CI/CD: docker compose up -d
docker compose down Зупинити compose стек Зупинити compose стек. Зупиняє та видаляє контейнери, мережі. Приклад: docker compose down, docker compose down -v — з тонами, docker compose down --rmi all — видалити образи. Прапори: -v (тони), --rmi (локальні образи), --remove-orphans (сирі контейнери). За замовчуванням видаляє все окрім тонів (якщо не вказано). У продукції: docker compose down -v для повного очищення. Для збереження тонів: docker compose down без -v
docker compose ps Compose контейнери Список compose контейнерів зі статусом. Приклад: docker compose ps, docker compose ps -q — лише ID. Показує: NAME, COMMAND, STATUS, PORTS. Корисно для моніторингу сервісів. Прапори: -q (quiet), --services (список сервісів), --all (усі контейнери). Для фільтрації: docker compose ps --filter "status=running". Аналог docker ps --filter "label=com.docker.compose.project=...". В CI: docker compose ps -q | xargs docker logs
docker compose logs Compose логи Логи compose сервісів. Приклад: docker compose logs — усі, docker compose logs -f web — follow, docker compose logs --tail 100 db. Прапори: -f (follow), --tail, --since, --timestamps, --no-color. Для debug: docker compose logs --tail 1000 web | grep error. Логи всіх сервісів: docker compose logs | grep -i error. В CI: docker compose logs --tail 50 для збереження в artifacts. Для вимкнення кольору: --no-color
docker compose exec Виконати команду Виконати команду всередині запущеного сервісу контейнера. Приклад: docker compose exec web bash, docker compose exec --user www-data web ls. Прапори: -u (користувач), --workdir, --env. На відміну від docker run --rm — контейнер зберігається. Корисно для налагодження, запуску технічного обслуговування. Аналог: docker exec з ім'ям контейнера. Для сервісу без запуску: docker compose run. Можна виконати: docker compose exec db psql -U postgres
docker compose build Зібрати сервіси Зібрати compose сервіси. Приклад: docker compose build — усі, docker compose build web — сервіс, docker compose build --no-cache. Прапори: --no-cache, --parallel, --pull, --push. Збирає образи перед up. Для збірки лише змінених: docker compose up --build. В CI: docker compose build --pull для свіжих базових образів. Для багатоархітектурного: docker compose build --platform linux/amd64,linux/arm64. Альтернатива: docker compose up -d --build
docker compose pull Завантажити сервіси Завантажити образи для compose сервісів. Приклад: docker compose pull — усі, docker compose pull web. Прапори: --ignore-buildable, --include-deps, --parallel. Корисно в CI перед up для свіжих образів. Аналог: docker pull для кожного сервісу. З --ignore-buildable — лише зовнішні образи. З --include-deps — завантажити залежності. Для перевірки версій: docker compose pull --dry-run (якщо підтримується)
docker compose push Відправити сервіси Відправити образи для compose сервісів. Приклад: docker compose push, docker compose push --ignore-buildable. Прапори: --ignore-buildable, --include-deps. Відправляє всі образи у реєстр. За замовчуванням, push всіх. З --ignore-buildable — лише образи, зібрані compose. В CI: docker compose push після docker compose build. Потребує docker login. Для багатоархітектурного: використовуйте docker buildx
docker compose restart Перезапустити сервіси Перезапустити compose сервіси. Приклад: docker compose restart, docker compose restart web. Прапори: -t (таймаут), --no-deps. Перезапускає контейнери без зміни конфігурації. Корисно для застосування змін. Аналог: docker compose stop && docker compose start. Для примусового: docker compose kill && docker compose start. У продукції: docker compose restart -t 30 для graceful
docker compose stop Зупинити сервіси Зупинити compose сервіси. Приклад: docker compose stop, docker compose stop web. Прапори: -t (таймаут). Зупиняє контейнери, але не видаляє їх. Контейнери залишаються — можна запустити з docker compose start. Аналог: docker compose up -d --no-recreate (зупиняє, але не видаляє). Для повного видалення: docker compose down. В CI: docker compose stop перед docker compose down
docker compose start Запустити сервіси Запустити compose сервіси. Приклад: docker compose start, docker compose start web. Прапори: --attach, --interactive. Запускає раніше зупинені контейнери. Контейнери мають бути створені (docker compose up або docker compose create). Аналог: docker start $(docker compose ps -q). Корисно для відновлення після docker compose down з збереженням тонів. Не створює нові ресурси
docker compose rm Видалити сервіси Видалити compose контейнери. Приклад: docker compose rm — з підтвердженням, docker compose rm -f — примусово. Прапори: -f, -v (тони), -s (зупинити). Видаляє контейнери, але не тони/образи. Корисно для очищення. Аналог: docker rm $(docker compose ps -q). Для видалення тонів: docker compose down -v. Не видаляє мережі. В CI: docker compose rm -f для очищення
docker compose config Перевірити конфігурацію Перевірити конфігурацію compose на правильність. Виводить об'єднану конфігурацію. --verbose прафора для детальної перевірки. Приклад: docker compose config — валідація + виведення YAML, docker compose config --quiet — лише валідація (вихід 0 або 1). Корисно в CI для перевірки конфігурації перед deploy. Альтернативи: docker-compose config (застаріла), docker compose up --dry-run. Валідація включає: синтаксис, типи, посилання, обмеження ресурсів. Для JSON виведення: docker compose config --format json
docker compose images Список образів Список образів, що використовуються compose. Приклад: docker compose images. Показує: IMAGE, ID, CREATED, SIZE. Корисно для аудиту використаних образів. Прапори: -q (quiet). В CI: docker compose images --format table для звітів. Альтернатива: docker compose ps --format "{{.Image}}" для запущених. Для всіх сервісів: docker compose ps -a --format "{{.Image}}"
docker compose top Запущені процеси Процеси compose сервісів. Приклад: docker compose top, docker compose top web. Аналог docker top для кожного сервісу. Показує PID, PPID, USER, CMD. Корисно для моніторингу та налагодження. Прапори: -l (Unix), -l (Windows). Для всіх сервісів: docker compose top | head -50. В CI: docker compose top --format json (якщо підтримується). Альтернатива: docker compose exec web ps aux
docker compose events Compose події Потік compose подій. Приклад: docker compose events, docker compose events --filter "service=web". Аналог docker events для compose. Показує події: create, start, stop, die, pause, unpause. Корисно для моніторингу та автоматизації. Прапори: --filter, --since, --until. В CI: docker compose events | jq -r '.Status' | sort | uniq для аналізу. Для debug: docker compose events --format json

Команди системи Docker

Команда Назва Опис
docker system df Використання диска Використання диска Docker: таблиця з образами, тонами, кешем збірки, контейнерами. Аналог df -h для Docker. Приклад: docker system df — таблиця, docker system df -v — детально. Виведення: TYPE, TOTAL, ACTIVE, SIZE, RECLAIMABLE. Для очищення: docker system prune. Для конкретних типів: docker system df --type image. Корисно для моніторингу дискового простору. В CI: docker system df --format table для звітів. Для аналізу: docker system df -v | grep RECLAIMABLE
docker system prune Очищення Docker Очищення непотрібних об'єктів. Приклад: docker system prune — контейнери/мережі/образи, docker system prune -a — включаючи образи, docker system prune --volumes — включаючи тони. Прапори: -a (усі), --volumes, -f (без підтвердження). Видалення: dangling образи, зупинені контейнери, непотрібні мережі, кеш збірки. З -a — усі образи без контейнерів. З --volumes — усі непотрібні тони. Альтернативи: docker container prune, docker image prune, docker volume prune. В CI: docker system prune -af --volumes після тестів
docker system info Інформація про систему Детальна інформація про систему Docker: драйвер, сховище, конфігурація демона. Аналог docker info. Приклад: docker system info. Виведення: Server Version, Storage Driver, Security Options, Operating System, Architecture, CPU, Memory, Docker Root Dir. Корисно для діагностики проблем конфігурації. Для перевірки драйверів: docker system info --format '{{.Driver}}'. В CI: docker system info для звіту. Альтернатива: docker info — також працює
docker system events Потік подій Потік подій Docker. Приклад: docker system events, docker system events --filter 'type=container'. Аналог docker events. Показує події: container, image, network, volume, daemon. Прапори: --filter, --since, --until. В CI: docker system events | jq -r '.Status' | sort | uniq для аналізу. Для моніторингу: docker system events --format json. Альтернатива: docker events — також працює

Команди Docker Swarm

Команда Назва Опис
docker swarm init Ініціалізувати swarm Створити swarm кластер на поточному ноді. Приклад: docker swarm init — авто-визначення, docker swarm init --advertise-addr 10.0.0.5. Перший manager нода. Після init: docker swarm join-token manager/worker для додавання нод. Manager ноди зберігають стан кластера. Для продукції: 3 або 5 manager нод для HA. Після init: docker node ls — покаже цю ноду. Worker ноди можна додати: docker swarm join з токеном. Не ініціалізується на Docker Desktop за замовчуванням
docker swarm join Приєднатися до swarm Приєднати ноду до swarm кластера. Приклад: docker swarm join --token manager-ip:2377. Токен можна отримати: docker swarm join-token worker/manager. На manager ноді, буде доданий як worker. На worker ноді — як worker. Порт 2377 (TCP) має бути відкритим. Після join: docker node ls — перевірити статус. Для manager join: docker swarm join --token . Ноде має мати доступ до Docker API. Альтернатива: docker swarm join без токена (якщо admin налаштував auto-approve)
docker swarm leave Покинути swarm Вийти з swarm. Приклад: docker swarm leave — worker, docker swarm leave --force — manager. Manager нода видаляється з кластера. Worker нода відключається. Після leave, нода стає standalone. Для примусового виходу (мережеві проблеми): docker swarm leave --force. Якщо це останній manager — кластер руйнується. Worker нода може покинути без force. Для очищення: docker swarm leave --force && docker system prune -a. Після leave, усі сервіси на ноді зупиняються
docker service create Створити сервіс Створити swarm сервіс. Приклад: docker service create --name web --replicas 3 -p 8080:80 nginx. Створює розподілений сервіс з вказаною кількістю реплік. Прапори: --name, --replicas, -p, --network, --mount, --env, --constraint, --update-parallelism. Сервіс — абстракція над контейнерами. Swarm автоматично балансує та масштабує. Для rollback: docker service update --rollback. У продукції: завжди --replicas ≥ 2 для HA. Альтернатива: docker stack deploy з YAML
docker service ls Список сервісів Список усіх swarm сервісів. --filter прафора для фільтрації. Приклад: docker service ls — усі, docker service ls --filter "name=web". Виведення: ID, NAME, MODE, REPLICAS, IMAGE, PORTS. Корисно для моніторингу сервісів. Для перевірки статусу: docker service ls --filter "replicas=1/3" (неспівпадіння реплік). Для JSON: docker service ls --format json. В CI: docker service ls | grep web | awk '{print $2}'. Для перегляду одного: docker service inspect web
docker service scale Масштабувати сервіс Масштабувати сервіс. Приклад: docker service scale web=5 — 5 реплік, docker service scale web=2 db=3. Масштабування вгору/вниз в реальному часі. Swarm автоматично додає/видаляє контейнери. Для auto-масштабування: використовуйте docker auto-scale або зовнішні інструменти. Для rollback: docker service scale web=3. У продукції: масштабування залежить від навантаження. Моніторинг: docker service ls. Для горизонтального масштабування: --replicas N при створенні. Альтернатива: docker service update --replicas N
docker service update Оновити сервіс Rolling оновлення сервісу. Приклад: docker service update --image nginx:1.25 web, docker service update --replicas 5 web. Оновлює образ, параметри, обмеження. За замовчуванням, rolling update з --update-parallelism 1 та --update-delay 30s. Для rollback: docker service update --rollback web. Прапори: --image, --replicas, --env, --constraint. Для zero-downtime: --update-parallelism 1 --update-delay 10s --update-order stop-first. В CI/CD: docker service update --image newimage service
docker node ls Список нод Список усіх swarm нод. --filter role=<manager|worker> прафора для фільтрації. Приклад: docker node ls — усі, docker node ls --filter role=manager. Виведення: ID, HOSTNAME, STATUS, AVAILABILITY, MANAGER STATUS, ENGINE VERSION. Корисно для моніторингу кластера. Для перевірки статусу: docker node ls --filter "manager status=reachability=reachable". Для drainage: docker node update --availability drain node-id. Для промоції/демотування: docker node promote/demote node-id. У продукції: 3-5 manager для HA
docker stack deploy Розгорнути стек Розгорнути стек файл (docker-compose.yml). Приклад: docker stack deploy -c docker-compose.yml myapp. Створює/оновлює всі ресурси за конфігурацією. Стек — група пов'язаних сервісів. Після deploy: docker stack ls, docker stack services myapp. Прапори: -c (compose файл), --resolve-image (always/changed/never). В CI/CD: docker stack deploy --prune -c docker-compose.yml myapp. Для rollback: docker stack deploy з попередньою версією. Альтернатива: docker service create вручну
docker stack rm Видалити стек Видалити стек та всі його ресурси. Приклад: docker stack rm myapp. Видаляє сервіси, мережі, тони (якщо налаштовано). Після rm, стек не з'являється у docker stack ls. Для видалення тонів: docker volume prune. Для очищення: docker stack rm myapp && docker system prune -a. В CI: docker stack rm myapp після тестів. Альтернатива: docker stack deploy --prune для часткового очищення

Змінні середовища Docker

Змінна Назва Опис
DOCKER_HOST Сокет демона Docker Адреса демона Docker. За замовчуванням unix:///var/run/docker.sock. Для TCP: tcp://10.0.0.5:2376. Впливає на всі команди Docker. Для SSH: ssh://user@host. Для TLS: tls://host:port. Встановити: export DOCKER_HOST=tcp://10.0.0.5:2376. Перевірка: echo $DOCKER_HOST. Не рекомендовано в CI — використовуйте контексти. Для Docker Desktop: DOCKER_HOST=unix://$HOME/.docker/run/docker.sock (macOS). Альтернатива: docker --host прапора
DOCKER_CONTEXT Контекст Docker Активний контекст. Перемикання між різними деконами. Значення за замовчуванням: default. Приклад: export DOCKER_CONTEXT=prod. Корисно для перемикання середовищ без прапора. Контексти зберігаються у ~/.docker/contexts/. Перелік: docker context ls. Для створення: docker context create prod --docker host=tcp://10.0.0.5:2376. Альтернатива: docker --context прапора. В CI: DOCKER_CONTEXT для автоматизації
DOCKER_CONFIG Каталог конфігурації Шлях до каталогу конфігурації. Містить config.json, сертифікати, контексти. За замовчуванням: ~/.docker. Приклад: export DOCKER_CONFIG=/opt/docker-config. Вміст: config.json (auth), tls/ (сертифікати), contexts/. Для ізоляції: mkdir -p ~/.docker-dev && export DOCKER_CONFIG=~/.docker-dev. При зміні конфігурації: нові команди використовують нову конфігурацію. Для резервного копіювання: tar czf docker-config.tar.gz ~/.docker. Не зберігайте чутливі дані без шифрування
DOCKER_TLS_VERIFY Перевірка TLS Перевірка TLS. Встановити на 1 для ввімкнення TLS. Порожнє значення — вимкнення. Приклад: export DOCKER_TLS_VERIFY=1. Впливає на DOCKER_HOST з TLS. Для auto: docker-machine env (встановлює DOCKER_*) для Docker Machine. При роботі з Docker Desktop: TLS увімкнено за замовчуванням. Для приватного реєстру: переконайтеся, що ca.pem доступний. Вимкнення TLS (DOCKER_TLS_VERIFY=) не рекомендовано у продукції
DOCKER_CERT_PATH Шлях TLS сертифікатів Шлях до TLS сертифікатів. Містить ca.pem, cert.pem, key.pem. За замовчуванням: $DOCKER_CONFIG/tls. Приклад: export DOCKER_CERT_PATH=/etc/docker/tls. Для Docker Machine: docker-machine env встановлює автоматично. При TLS помилках: перевірте, що всі три файли існують. Для генерації: docker-machine generate-certs (у новіших версіях). Для продукції: використовуйте self-signed CA або Let's Encrypt. Файли мають мати 600 дозволи для ключів
DOCKER_DEFAULT_PLATFORM Типова платформа Типова платформа для pull/build/run. Приклад: linux/amd64. Переопреділяє авто-визначення архітектури. Корисно коли хост та цільова платформи різняться. Приклад: export DOCKER_DEFAULT_PLATFORM=linux/arm64 — завжди тягнути arm64 на x86. Працює з pull, build, run. Для перевірки: docker info --format '{{.Architecture}}'. В CI: DOCKER_DEFAULT_PLATFORM для кросплатформних збірок. Альтернатива: --platform прафора. Помилка на несумісності платформ
DOCKER_API_VERSION Версія API Переопреділити версію API Docker Engine. Корисно для сумісності зі старими CLI. Приклад: 1.41. Формат: M.m (major.minor). Новий Docker вимагає API 1.41+. Для старого демона: export DOCKER_API_VERSION=1.40. Перевірити підтримувану API: docker version --format '{{.Server.APIVersion}}'. Альтернатива: DOCKER_API_VERSION у daemon.json. В CI: DOCKER_API_VERSION для сумісності зі старими версіями Docker. Занадто стара версія може не підтримувати нові команди
BUILDKIT_PROGRESS Виведення BuildKit Формат виведення BuildKit. Значення: plain (детальний), tty (прогрес бар). Для CI: plain. Приклад: export BUILDKIT_PROGRESS=plain. В терміналі: tty показує прогрес бар. В CI/CD: plain для логування. Альтернатива: DOCKER_BUILDKIT=1 (вмикає BuildKit). З plain, бачите кожен крок збірки. З tty — гарний прогрес. Для debug: export BUILDKIT_PROGRESS=plain. В GitHub Actions: автоматично plain