Using carrick with Docker

Beyond carrick run, carrick can build images and speak the Docker Engine API — so you can use it in place of Docker for many workflows, or alongside it.

Build images — carrick build

carrick build builds an OCI image from a Dockerfile by running the real kaniko builder as a carrick guest, then loading the result into carrick's local store (or pushing it with --push). No Docker daemon required.

$ carrick build -t myapp:latest -f Dockerfile .
Successfully built myapp:latest
$ carrick run myapp:latest /app/start

Flags mirror docker build: -t/--tag, -f/--file, --build-arg KEY=VALUE, --no-cache/--cache, --platform, and --push.

Drive carrick from Docker tooling — carrick serve

carrick serve exposes a Docker Engine API over a unix socket — a daemonless translator over carrick's on-disk container store. Point a client at the socket with DOCKER_HOST:

$ carrick serve --docker-api --host /tmp/carrick.sock &
$ curl --unix-socket /tmp/carrick.sock http://localhost/_ping
OK

It answers /_ping, /version, /info, image build (/build), and the programmatic container lifecycle — create / start / wait / remove — that SDKs such as bollard use to launch containers without shelling out to a CLI.

This surface is early. It targets programmatic clients, not the interactive docker CLI: docker run (attach/stream), docker ps, and docker images are not implemented yet, and there is no network/volume-management API, compose orchestration, or cgroup/capability enforcement. Use it to drive basic container lifecycle from code.

Registry auth — carrick login

Authenticate to private registries for pulls and pushes, like docker login:

$ carrick login -u USER --password-stdin registry.example.com
$ carrick logout registry.example.com

In place of, or together with

See also the CLI reference and the compatibility baselines.