Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Getting Started

Pull an image

Images are available from both GHCR and Docker Hub:

# From GitHub Container Registry (default)
docker pull ghcr.io/driftsys/dock:core

# From Docker Hub
docker pull driftsys/dock:core

Both registries publish the same images with identical digests.

Run interactively

docker run --rm -it ghcr.io/driftsys/dock:core bash

Use in GitHub Actions

jobs:
  build:
    runs-on: ubuntu-latest
    container: ghcr.io/driftsys/dock:rust
    steps:
      - uses: actions/checkout@v4
      - run: cargo build --release
      - run: cargo test

Use in GitLab CI

build:
  image: ghcr.io/driftsys/dock:rust
  script:
    - cargo build --release
    - cargo test

Choose a variant

Every image ships in two variants:

TagBaselibcBest for
:imagealpine:3.21muslSmallest footprint, default
:image-debiandebian:bookworm-slimglibcBroader compatibility

Use the Debian variant when your tools require glibc (e.g. pre-built binaries that don’t support musl).

Pin a version

Floating tags (:core, :rust, …) always point to the latest release. For reproducible builds, pin to a version tag:

container: ghcr.io/driftsys/dock:rust-0.1.0

Inspect the manifest

Each image records installed tool versions in /etc/dock/manifest.json:

docker run --rm ghcr.io/driftsys/dock:rust \
  jq . /etc/dock/manifest.json
{
  "image": "rust",
  "version": "0.1.0",
  "tools": {
    "rustc": "1.83.0",
    "cargo": "1.83.0",
    "clippy": "0.1.83",
    "rustfmt": "1.8.0"
  }
}

Next steps