OCI docker podman

watch -n2 'docker ps --format=json --no-trunc | jq "select(.Image|startswith(\"dast.\")) | .ID,.Mounts"'
docker images --format json | jq -scr '.[] | select (.Repository=="python") | .Repository+":"+.Tag'

some refs:

Docker tuning

Allocate IP pools

  • ```json {filename=“/etc/docker/daemon.json”} … “bip”: “10.216.0.1/17”, “fixed-cidr”: “10.216.0.1/17”, “default-address-pools”: [ {“base”: “10.216.128.0/17”, “size”: 24}], …

Enable [userns-remap](https://docs.docker.com/engine/security/userns-remap/):

- ```json {filename="/etc/docker/daemon.json"}
"userns-remap": "default"  
  • ```json {filename=“/etc/subuid, /etc/subgid”} dockremap:231072:65536


<!-- Для того, чтобы процесс в контейнере мог управлять другими контейнерами, ему нужен интерфейс к `dockerd`.
Таковым является по умолчанию `/var/run/docker.sock`, и доступ к сокету необходимо дополнительно обустроить:

::: {.aside}
Актуально для D1-backend, который управляет запуском сканеров.
::: -->

When the process in the container should control other containers:

- `ls -l /var/run/docker*.sock`

srw-rw—- 1 231072 231072 0 … /var/run/docker_alt.sock srw-rw—- 1 root docker 0 … /var/run/docker.sock ```

  • "hosts": ["unix:///var/run/docker.sock", "unix:///var/run/docker_alt.sock"]
    в /etc/docker/daemon.json

  • ExecStartPost=chown 231072:231072 /var/run/docker_alt.sock в /etc/systemd/system/docker.service.d/override.conf


RUN + Cache

RUN --mount=type=cache,target=/var/cache/apt,sharing=locked \
    --mount=type=cache,target=/var/lib/apt/lists,sharing=locked \
RUN --mount=type=cache,target=/root/.cache/pip,sharing=shared \
RUN --mount=type=cache,target=/usr/local/cargo/registry,sharing=shared \
    --mount=type=cache,target=/app/target,sharing=shared \
    cargo build --release && \
RUN --mount=type=cache,target=/root/.npm,sharing=shared \
    npm ci