seccomp: белый список системных вызовов для процесса

seccomp (secure computing mode) — механизм ядра Linux, который ограничивает процесс конкретным набором системных вызовов: всё, чего нет в профиле, ядро обрывает ещё до выполнения, обычно возвращая EPERM вместо реального эффекта вызова. В отличие от прав доступа к файлам или capabilities, это фильтр на уровне самого интерфейса ядро-процесс — даже если процесс получил root внутри контейнера, вызов, которого нет в whitelist (например, ptrace или mount), просто не сработает. Docker вешает дефолтный seccomp-профиль на каждый контейнер автоматически, если не указано иное — из ~300+ syscall’ов он блокирует около 44, в основном связанных с управлением ядром и отладкой (ptrace, add_key, request_key, большая часть mount). Podman и другие рантаймы на базе crun/runc используют концептуально тот же подход с собственным JSON-профилем. Отключить фильтрацию или подставить свой профиль — один флаг: ...

October 20, 2026 · llexa

nsenter: заходим в namespace процесса без docker exec

docker exec работает только если в образе есть шелл, а сам docker жив. nsenter заходит в те же namespaces напрямую через процесс на хосте — работает и для контейнеров без шелла (distroless-образы), и для разбора любых процессов, изолированных namespaces, не только Docker. nsenter --target $(pgrep -f myservice) --mount --uts --ipc --net --pid -- /bin/sh --target PID — чей namespace открываем, дальше флаги выбирают какие именно namespace’ы разделить: --net — сетевой стек контейнера, --mount — его файловую систему, --pid — его дерево процессов. ...

September 17, 2026 · llexa

nerdctl: docker-совместимый CLI поверх containerd

Если на сервере уже стоит containerd (например, как часть Kubernetes-ноды), ставить рядом полный Docker ради привычного CLI избыточно — nerdctl даёт те же команды, но работает прямо через containerd, без своего демона. nerdctl run -d -p 8080:80 nginx nerdctl ps nerdctl build -t myapp . docker-compose.yml тоже читается как есть: nerdctl compose up -d Отдельно стоит rootless-режим — контейнеры без root на хосте, без suid-бинарников и без выхода из namespace как единственной защиты: ...

July 23, 2026 · llexa

nerdctl: docker-совместимый CLI поверх containerd

Если на сервере уже крутится Kubernetes или containerd сам по себе, держать вдобавок docker-демон — лишняя сущность. nerdctl даёт тот же синтаксис, что docker, но говорит напрямую с containerd. curl -LO https://github.com/containerd/nerdctl/releases/latest/download/nerdctl-full-2.0.0-linux-amd64.tar.gz tar Cxzf /usr/local nerdctl-full-2.0.0-linux-amd64.tar.gz nerdctl run -d --name web -p 80:80 nginx nerdctl compose up -d # docker-compose.yml работает как есть alias docker=nerdctl Из коробки есть то, чего у docker нет: rootless без отдельной установки и lazy-pulling образов через stargz (контейнер стартует раньше, чем образ скачался целиком). Состояние живёт в неймспейсах containerd (nerdctl -n k8s.io ps = вид Kubernetes) — к этому надо привыкнуть. ...

July 9, 2026 · llexa

MikroTik Container: на каких устройствах работает

RouterOS 7.4+ умеет запускать OCI-контейнеры прямо на роутере — но только если процессор ARM или x86. MIPS и Tile (Cavium Tilera на CCR1xxx) не поддерживаются. Быстрая проверка архитектуры: /system resource print Поле architecture-name: arm / arm64 / x86_64 → контейнеры работают mipsbe / mips / tile → не работают ARM/ARM64 — работает: RB4011, RB3011, RB5009, CCR2004, CCR2116, CCR2216, RBM33G, hAP ax³, CHR. Без контейнеров: весь бюджетный сегмент на MIPS (hEX, hAP ac, RB951, wAP), весь CCR1xxx (Tile), старые PowerPC-платформы. ...

June 26, 2026 · llexa

podman: rootless-контейнеры без демона

podman запускает контейнеры без root и без фонового демона — каждый контейнер это просто дочерний процесс пользователя: podman run -d --name nginx -p 8080:80 nginx:alpine podman ps podman logs nginx podman stop nginx && podman rm nginx Образы совместимы с Docker Hub. Большинство docker-команд работают через alias: alias docker=podman Превратить контейнер в systemd-сервис, который стартует при логине пользователя: podman generate systemd --name nginx --files --new mv container-nginx.service ~/.config/systemd/user/ systemctl --user enable --now container-nginx.service --new означает: при старте сервиса контейнер создаётся заново из образа, при стопе — удаляется. ...

June 26, 2026 · llexa