// the find
kreuzwerker/terraform-provider-docker
Terraform Docker provider
A Terraform provider for managing Docker resources declaratively — images, containers, networks, volumes, Swarm services, secrets, configs, plugins, buildx builders, and even docker-compose files. It's for teams who want Docker infrastructure in the same state file as the rest of their Terraform-managed stack instead of shelling out to docker-compose or docker CLI separately.
Unusually broad resource coverage for a provider this size — Swarm services, buildx builders, and docker_compose as first-class resources is rare; most IaC tools stop at images and containers. It's also adopted Terraform's new Actions feature (docker_exec, docker_image_import/load/save, container_export, system_prune) ahead of most providers, which is a meaningful operational upgrade over resource-only workflows. Test discipline is solid: tagged acceptance tests running in CI, golangci-lint, and a clean Go Report Card. Two migration guides (v2→v3, v3→v4) show they document breaking changes instead of just bumping major versions and leaving users to diff the changelog.
The codebase is mid-migration between the old SDKv2 (provider.go) and the new Plugin Framework (framework_provider.go), so contributors have to reason about two provider patterns simultaneously — and the public API could still shift as that migration finishes. The Actions feature requires a very recent Terraform release, so if your org isn't on the latest version, a chunk of what's advertised in the README simply isn't usable yet. Swarm support is thorough but Swarm adoption has been declining for years in favor of Kubernetes, so that's a lot of surface area to maintain for a shrinking slice of users. The README states Go 1.18 as the build requirement, which is worth verifying against the actual go.mod before relying on it — docs lagging code is a common failure mode in providers with this much surface area.