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:
- multi services https://docs.docker.com/config/containers/multi-service_container/#use-a-process-manager
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.jsonExecStartPost=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