go-containerregistry VS docker-lock

Compare go-containerregistry vs docker-lock and see what are their differences.

go-containerregistry

Go library and CLIs for working with container registries (by google)

docker-lock

Automatically manage image digests in Dockerfiles, docker-compose files, and Kubernetes manifests by tracking them in a separate Lockfile (by safe-waters)
Our great sponsors
  • WorkOS - The modern identity platform for B2B SaaS
  • InfluxDB - Power Real-Time Data Analytics at Scale
  • SaaSHub - Software Alternatives and Reviews
go-containerregistry docker-lock
17 3
2,917 424
2.6% 1.2%
7.3 0.0
6 days ago about 2 months ago
Go Go
Apache License 2.0 Apache License 2.0
The number of mentions indicates the total number of mentions that we've tracked plus the number of user suggested alternatives.
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.

go-containerregistry

Posts with mentions or reviews of go-containerregistry. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2023-11-23.

docker-lock

Posts with mentions or reviews of docker-lock. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2023-12-06.
  • :latest or :version for supporting services?
    3 projects | /r/selfhosted | 6 Dec 2023
    I do both! I tag my services with :latest, then use docker-lock. It scans your docker and docker-compose, generates a lock file and adds the current sha to git. That lets me freely update because I can always go get the previous version from git, rollback, and pin the version for that specific container if there is a problem. It really is the best of both worlds.
  • Keeping Up with Docker Official Images
    5 projects | news.ycombinator.com | 8 Jun 2021
    Nice! I was thinking about building something similar -- just filed an issue for how you might extend this to work for migrating registries.

    Pleasantly surprised to come across this PR: https://github.com/safe-waters/docker-lock/pull/73

    This is a perfect application of crane :)

    5 projects | news.ycombinator.com | 8 Jun 2021
    Shameless Plug: I wrote a cli-plugin for docker, docker-lock, to solve the mutable tag problem without having to manually specify hashes - https://github.com/safe-waters/docker-lock

    It creates a Lockfile (think package-lock.json) that tracks the image digests (sha256 hashes) of your base images, so you will always know exactly which images you are using even if you only specify tags. This way, you can know if a base image has changed, yet still receive important security updates that you would not receive if you hardcode the digest. It supports any registry, so is useful even if you are not using Dockerhub. It also works with Dockerfiles, docker-compose files, and Kubernetes manifests.

    I hope anyone dealing with this issue finds it helpful :)

What are some alternatives?

When comparing go-containerregistry and docker-lock you can also consider the following projects:

skopeo - Work with remote images registries - retrieving information, images, signing content

regclient - Docker and OCI Registry Client in Go and tooling using those libraries.

container-diff - container-diff: Diff your Docker containers

gcr-cleaner - Delete untagged image refs in Google Container Registry or Artifact Registry

image-spec - OCI Image Format

docker-tools - This is a repo to house some common tools for our various docker repos.

containerd - An open and reliable container runtime

buildkit - concurrent, cache-efficient, and Dockerfile-agnostic builder toolkit

Diun - Receive notifications when an image is updated on a Docker registry

manifest-tool - Command line tool to create and query container image manifest list/indexes

kubectl-node-shell - Exec into node via kubectl