Skip to content

Build container images

docker build

What: The classic Docker CLI command to build images. Engine: Uses the legacy Docker image builder by default, but can use BuildKit if enabled. Features:

  • Basic Dockerfile support
  • single-platform builds
  • limited caching.
docker build -t myimage .

https://docs.gitlab.com/ci/docker/using_docker_build/

docker buildx

What: An advanced Docker CLI plugin for building images. Engine: Uses BuildKit under the hood. Features:

  • Multi-platform builds (e.g., build for amd64 and arm64 in one command)
  • Advanced caching (local, registry, inline)
  • Output to multiple formats (Docker, OCI, tar, etc.)
  • Build secrets, better performance
docker buildx build --platform linux/amd64,linux/arm64 -t myimage .

buildkit

What: The next-generation image builder for Docker, designed for speed and flexibility. Engine: Can be used standalone or as the backend for docker build and docker buildx. Features:

  • Parallel build steps
  • Advanced caching
  • Build secrets
  • Improved performance

Usage: Enabled in Docker with DOCKER_BUILDKIT=1 docker build ... Used natively by docker buildx

DOCKER_BUILDKIT=1 docker build .

https://docs.gitlab.com/ci/docker/using_buildkit/

buildah

What: A Red Hat-sponsored, daemonless tool for building OCI and Docker images. Engine: Standalone, does not require the Docker daemon. Features:

  • Scriptable, fine-grained control over image layers
  • Rootless builds
  • Integrates well with Podman and OpenShift
  • No need for a running Docker daemon
buildah bud -t myimage .

https://docs.gitlab.com/ci/docker/buildah_rootless_multi_arch/

podman

kaniko

The project has no mantainers