docker-ops · git:20260901.2a62016 · 2026-09-01 · sha256 74a09893d2233a02
docker-ops git:20260901.2a62016A
Immutable. This exact content never changes and is served at /api/v1/blob/74a09893d2233a02.
--- name: docker-ops description: >- Практическая работа с Docker Engine и Docker Compose v2: Dockerfile, multi-stage, healthcheck, сети, volumes, bind mounts, логи, registry, docker compose up/down/config, BuildKit, non-root USER, restart policy. Используй этот skill при любых задачах по контейнерам на хосте: собрать образ, написать compose.yaml, починить Restarting, разобрать docker logs, docker inspect, overlay2, docker.sock, prune, CI image build. Триггеры: docker, dockerfile, docker compose, compose.yaml, container, image build, docker logs, healthcheck, bind mount, docker network, registry, dind. --- # Docker Ops Skill для Docker Engine и Compose v2 на Linux-хосте. Отдавай готовые `Dockerfile`/`compose.yaml` и команды проверки, не общие советы. Не используй как основной skill для Kubernetes, GitLab YAML или Ansible модуля `community.docker` — там `gitlab-ci` и `ansible-playbook`. GitLab `docker:dind` разбирай вместе с `gitlab-ci`. ## Когда использовать - Написать или починить Dockerfile / compose.yaml. - Контейнер в `Restarting`, unhealthy, не резолвит DNS, не видит volume. - Сборка образа, теги, push в registry. - Сети, порты, bind mounts, named volumes, tmpfs. - Логи, `inspect`, `events`, disk от overlay2. ## Workflow 1. Уточни runtime: `docker version`, `docker compose version`. Compose v2 — это `docker compose`, не `docker-compose`. 2. Если есть compose — сначала `docker compose config` и `ps -a`. 3. Симптом снимай с контейнера: `ps`, `logs --tail`, `inspect`, `health`. 4. Код/конфиг меняй декларативно в Dockerfile/compose, не `docker exec` как постоянный фикс. 5. Проверка: контейнер healthy, порт слушает, volume на месте, тег не `latest` в prod. ## Правила - Теги фиксируй. `latest` только для локального эксперимента. - В prod — `USER` не root, `read_only` + `tmpfs` где можно, drop Linux caps. - Bind-mount конфигов: `:ro`. Данные — named volume или явный data-path. - Healthcheck обязателен, если от него зависит `depends_on: condition`. - Секреты не в ENV в image history. `env_file`, tmpfs, Docker secrets. - `network_mode: host` — исключение, не дефолт. ## Companion skills - Хост systemd/journald/диск → `administering-linux`. - Сборка в GitLab CI / dind / registry → `gitlab-ci`. - Раскатка compose через Ansible → `ansible-playbook`. - Amnezia-контейнеры `/opt/amnezia` → `amnezia-vpn`. ## References - `references/compose-and-dockerfile.md` — шаблоны Dockerfile и Compose. - `references/debug.md` — диагностика контейнеров, сетей, диска, daemon. <!-- A-EVOLVE-ROUTING-SIGNALS:START --> ## Routing signals: docker dockerfile compose.yaml docker compose healthcheck bind mount overlay2 registry image build container logs inspect restarting dind buildkit <!-- A-EVOLVE-ROUTING-SIGNALS:END -->