docker

46 commands

46 shown

Мультиплатформенная сборка и push Кросс-компиляция и push в реестр с BuildKit docker buildx build --platform linux/amd64,linux/arm64 -t reg/img:tag --push . #docker Запуск контейнера с env-файлом Локальный запуск с переменными из файла; --rm удаляет контейнер при выходе docker run --rm -it --env-file .env -p 8000:8000 img:tag #docker Просмотр слоёв образа Каждый слой, его команда и размер; поиск лишнего docker history --no-trunc img:tag #docker#debug Очистка неиспользуемого Удалить остановленные контейнеры, неиспользуемые образы, сети, тома docker system prune -af --volumes #docker Копирование образа между реестрами Перетегировать и запушить в другой реестр docker pull src-reg/img:tag && docker tag src-reg/img:tag dst-reg/img:tag && docker push dst-reg/img:tag #docker Сохранение образа в архив Экспорт образа для передачи в изолированную среду docker save img:tag | gzip > img.tar.gz #docker Сборка с build args Передать переменные времени сборки в ARG инструкции Dockerfile docker build --build-arg VERSION=1.2.3 --build-arg ENV=prod -t img:tag . #docker Сканировать образ Trivy Завершить с ошибкой при HIGH или CRITICAL уязвимостях trivy image --exit-code 1 --severity HIGH,CRITICAL img:tag #docker#security SBOM образа Генерировать Software Bill of Materials для образа docker sbom img:tag #docker#security Инспект запущенного контейнера Сетевые настройки запущенного контейнера docker inspect <container> | jq '.[0].NetworkSettings.Networks' #docker#debug#network Compose: запустить в фоне Собрать и запустить все сервисы в фоне docker compose up -d --build #docker#compose Compose: логи в реальном времени Стриминг последних 100 строк и следить за сервисом compose docker compose logs -f --tail=100 <service> #docker#compose#logs Compose: остановить и удалить тома Остановить и удалить контейнеры, сети и тома docker compose down -v #docker#compose Дисковое использование контейнеров Детальное использование диска по образам, контейнерам, томам docker system df -v #docker Exec в контейнер под root Войти в контейнер под root даже если дефолтный пользователь другой docker exec -it -u root <container> bash #docker#debug Скопировать файл в контейнер Добавить файл в запущенный контейнер без пересборки docker cp ./local-file.conf <container>:/etc/app/config.conf #docker#debug Загрузить образ из архива Импортировать образ сохранённый через docker save docker load < img.tar.gz #docker GC в приватном реестре Освободить диск в самохостированном Docker Registry docker exec -it registry bin/registry garbage-collect /etc/docker/registry/config.yml #docker Сборка конкретного stage Собрать только до конкретного stage в многостадийном Dockerfile docker build --target builder -t img:builder . #docker Сборка с аргументами Передать переменные сборки в инструкции ARG Dockerfile docker build --build-arg APP_VERSION=1.2.3 --build-arg ENV=prod -t myapp:1.2.3 . #docker Мульти-платформенная сборка Собрать и запушить мульти-архитектурный образ через BuildKit docker buildx build --platform linux/amd64,linux/arm64 -t myapp:latest --push . #docker Слои образа Все слои с полными командами и размерами docker history --no-trunc <image> #docker#debug Экспорт ФС контейнера Просмотреть объединённую ФС контейнера как tar-поток docker export <container> | tar -tvf - | head -30 #docker#debug Изменения контейнера от образа Добавленные (A), изменённые (C), удалённые (D) файлы в контейнере docker diff <container> #docker#debug Создать образ из контейнера Сохранить ФС работающего контейнера как образ docker commit -m 'debug snapshot' <container> debug-snapshot:$(date +%s) #docker#debug Запуск с лимитами ресурсов Ограничить контейнер 512MB RAM и половиной ядра CPU docker run --memory=512m --cpus=0.5 --oom-kill-disable=false myapp #docker#performance Использование ресурсов контейнеров Одноразовый снапшот CPU и памяти для всех контейнеров docker stats --no-stream --format 'table {{.Name}}\t{{.CPUPerc}}\t{{.MemUsage}}' #docker#monitoring Удалить незанятые образы Удалить все неиспользуемые образы <none>:<none> docker image prune -f #docker Полная очистка Docker Удалить остановленные контейнеры, образы, сети, тома docker system prune -a --volumes -f #docker Скопировать файл из контейнера Извлечь файл из запущенного или остановленного контейнера docker cp <container>:/app/config.yaml ./local-config.yaml #docker#debug Docker Compose запуск фоном Пересобрать и запустить сервисы, удалить лишние контейнеры docker compose up -d --build --remove-orphans #docker Масштабировать сервис Compose Запустить 5 реплик сервиса worker docker compose up -d --scale worker=5 #docker Логи сервиса Compose Стримить последние 100 строк конкретного сервиса Compose docker compose logs -f --tail=100 worker #docker#logs Инспектировать сеть Docker IP-адреса всех контейнеров в сети bridge docker network inspect bridge | jq '.[0].Containers | to_entries[] | .value | {Name, IPv4Address}' #docker#network Создать кастомную сеть Создать bridge-сеть с кастомной подсетью docker network create --driver bridge --subnet 172.30.0.0/24 mynet #docker#network Сохранить и загрузить образ Экспортировать образ в архив и импортировать на другом хосте docker save myapp:1.0 | gzip > myapp.tar.gz && docker load < myapp.tar.gz #docker HEALTHCHECK в Dockerfile Встроенная проверка здоровья Docker через curl (в Dockerfile) HEALTHCHECK --interval=10s --timeout=3s --retries=3 CMD curl -sf http://localhost:8080/health || exit 1 #docker Уязвимости образа (scout) Показать только CVE для которых есть исправление docker scout cves --only-fixed myapp:latest #docker#security Временный отладочный контейнер Полноценный сетевой отладчик с хостовыми PID и сетью docker run --rm -it --pid=host --network=host --privileged nicolaka/netshoot #docker#debug#network Сборка матрицы из bake-файла Сборка и push нескольких целей из одного HCL-файла; параллельно, без дублирования групп docker buildx bake -f docker-bake.hcl --push #docker#buildkit#ci#performance Просмотр мультиарх-манифеста Показывает платформы в списке манифестов без скачивания слоёв; проверка arm64+amd64 docker buildx imagetools inspect <reg>/<name>:tag --format '{{json .Manifest}}' #docker#buildkit#troubleshooting#cloud Сборщик на драйвере container Создаёт сборщик BuildKit с поддержкой мультиарх и экспорта кэша; драйвер по умолчанию не умеет docker buildx create --name multi --use --driver docker-container --driver-opt network=host #docker#buildkit#ci Передача секрета сборки из файла Передаёт секрет в BuildKit; виден только в RUN --mount=type=secret,id=token, не в history docker buildx build --secret id=token,src=token.txt -t <name> . #docker#buildkit#secrets#security Удалённый демон по SSH Запуск docker на удалённом демоне по SSH; не нужен открытый TCP-сокет docker context create remote --docker host=ssh://<host> && docker context use remote #docker#network#security Усиленный read-only контейнер Неизменяемый rootfs, запись только в /tmp, запрет эскалации привилегий; усиление контейнера docker run --read-only --tmpfs /tmp --security-opt no-new-privileges --cap-drop ALL <name> #docker#security#kernel Слежение за OOM-убийствами Поток событий OOM в реальном времени для отлова контейнеров, убитых по лимиту памяти docker events --filter event=oom --filter type=container #docker#monitoring#troubleshooting#performance
no commands match