Top 23 Go Docker Projects
-
Moby
Moby Project - a collaborative project for the container ecosystem to assemble container-based systems
// https://github.com/moby/moby/blob/1ef1cc8388165b2b848f9b3f53ec91c87de09f63/daemon/graphdriver/overlay2/overlay.go#L580 opts := fmt.Sprintf("lowerdir=%s,upperdir=%s,workdir=%s", strings.Join(absLowers, ":"), path.Join(dir, "diff"), path.Join(dir, "work")) mountData := label.FormatMountLabel(opts, mountLabel) mount := unix.Mount mountTarget := mergedDir rootUID, rootGID, err := idtools.GetRootUIDGID(d.uidMaps, d.gidMaps) // ...
-
traefik
The Cloud Native Application Proxy
Project mention: Traefik and Boreale for auth in Docker. Help needed. | reddit.com/r/docker | 2021-02-26Hi, just trying to set up Boreale with Traffik, for auth.
-
Scout
Get performance insights in less than 4 minutes. Scout APM uses tracing logic that ties bottlenecks to source code so you know the exact line of code causing performance issues and can get back to building a great product faster.
-
dive
A tool for exploring each layer in a docker image
have a look at dive
-
drone
Drone is a Container-Native, Continuous Delivery Platform
Project mention: Best option for docker continual deployment on local server | reddit.com/r/selfhosted | 2021-03-05My CI server is TeamCity which offers docker Image for the main CI and docker images for agents. It is less modern / sleek then drone.io, but a good fall back if drone.io does not meet your needs.
-
OpenFaaS
OpenFaaS - Serverless Functions Made Simple
Ruby and Rails versions : Ruby 3 and Ruby on Rails 6 Architecture : Use "the Rails way" Background jobs : Sidekiq Database : PostgreSQL Asset Management : Webpacker CSS : Tailwind Javascript : Alpine.js, Stimulus, and Vue Pagination : Pagy Testing : RSpec or Minitest with VCR Periodic jobs : Clockwork Code formatting : Prettier for Javascript. Rubocop for Ruby Exception management : Rollbar or Honeybadger Sending email : Postmark Slugs : friendly_id Full Text Search : pg_search or searchkick Deployment : Heroku or Dokku Self-hosted tools : Thumbor, Huginn, OpenFaaS and Grafana Editor tools : Solargraph, Rails fast nav, Prettier, ruby-rubocop Monitoring : InfluxDB, Grafana and influxdb-rails Templating engine : ERB Admin tool : activeadmin
-
rancher
Complete container management platform
Sad news, but I'm not surprised with this. The complete ecosystem was "killed" (if that can be said) with K8s buzz and hipsterism (sorry guys, but I see K8s as Hadoop/BigData of modern days - a solution from a huge company that has no place in 90% setups). Alternatives like Deis [2] moved to K8s a long time ago. My favorite tool for some time, Rancher [3], did that as well.
I've been using Dokku [1] for a few years on a small setup, surprisingly without a single problem, taking into account it was written in "not-so-cool" bash. And I was considering Flynn as the next step if I need to scale it because Dokku doesn't have clustering support (added: looks like clustering support for Dokku is in work [4]).
After many checks, I got the impression Flynn simply wasn't there yet. Either because of low development pace, low number of supported appliances, or something else, I'm not sure. In the end, I picked up Ansible for more distributed setups.
[4] https://www.reddit.com/r/devops/comments/bgpw5w/flynn_vs_dok...
-
Harbor
An open source trusted cloud native registry project that stores, signs, and scans content.
Project mention: How would you setup a private docker registry that can "mirror" dockerhub? | reddit.com/r/docker | 2021-02-28Harbor has this through its proxy cache feature https://goharbor.io
-
ctop
Top-like interface for container metrics
I like ctop
-
gvisor
Application Kernel for Containers
Project mention: Building a secure/sandboxed environment for executing untrusted code | dev.to | 2021-01-16gVisor by Google is a userspace application kernel written in Go. Userspace kernel is a software that runs completely in user-mode and has less privilege (since it runs in user-mode). It also acts as a kernel emulation layer, that means, it can act as a fake kernel and can receive and process system-calls, thus hiding the host kernel. gVisor is compatible with OCI and provides a OCI runtime called runsc that can be used by container management tool like docker as the underlying runtime. (docker uses runc as the default runtime).
-
skaffold
Easy and Repeatable Kubernetes Development
skaffold (https://skaffold.dev/) for automating both of the above into a repeatable development workflow with live code reloading when something moves past playing around
-
hydra
OpenID Certified™ OpenID Connect and OAuth Provider written in Go - cloud native, security-first, open source API security for your infrastructure. SDKs for any language. Compatible with MITREid.
Project mention: Ory Hydra 1.9: Open-source Golang OAuth2 provider | reddit.com/r/patient_hackernews | 2021-01-13 -
transfer.sh
Easy and fast file sharing from the command-line.
dutchcoders/transfer.sh - Easy and fast file sharing from the command-line.
-
Lean and Mean Docker containers
DockerSlim (docker-slim): Don't change anything in your Docker container image and minify it by up to 30x (and for compiled languages even more) making it secure too! (free and open source)
Yeah in the end distroless is likely always going to be the smallest image, as it really cuts out everything that's not necessary to run your app. You might experiment with taking a debian-slim or minideb image and running it through docker-slim to see if it gets closer to the distroless output: https://github.com/docker-slim/docker-slim
-
rook
Storage Orchestration for Kubernetes
git clone https://github.com/rook/rook.git
-
containerd
An open and reliable container runtime
Ok now that you are ready to apply the container runtime switch, let's proceed with the changes. I will use containerd as container runtime in this post but the steps below can be adapted to any container runtime (like CRI-O)
-
runc
CLI tool for spawning and running containers according to the OCI specification
Remember that runc contains quite a few lines of C:
https://github.com/opencontainers/runc/blob/4d4d19ce528ac40c...
https://github.com/opencontainers/runc/blob/4d4d19ce528ac40c...
-
goreleaser
Deliver Go binaries as fast and easily as possible
Probably the most common option, or at least most readily available, is to pull your commit messages since the last release and package it all up. You have tools and formats such as conventional commits combined with standard version can auto-generate changelogs for you. NodeJS's changelog maker does the same thing in one package. GoReleaser has a built-in release notes tool that acts very similarly.
-
clair
Vulnerability Static Analysis for Containers
Harbor is an OCI compliant registry which is made of various components which includes Docker registry V2, Harbor UI, Clair, Notary, backed by a cache like Redis and a database like Postgres.
-
watchtower
A process for automating Docker container base image updates.
Take a look at watchtower https://github.com/containrrr/watchtower
-
kind
Kubernetes IN Docker - local clusters for testing Kubernetes
Project mention: Kubernetes Development Environments - A Comparison by Daniel Thiry | dev.to | 2021-02-24Local Kubernetes clusters are clusters that are running on the individual computer of the developer. There are many tools that provide such an environment, such as Minikube, microk8s, k3s, or kind. While they are not all the same, their use as a development environment is quite comparable.
-
trivy
A Simple and Comprehensive Vulnerability Scanner for Container Images, Github Repositories and Filesystems. Suitable for CI
Shift left security refers to moving security sooner in the development process. It aims at having security in mind from the get-go and not when "sh*t hits the fan". One tool that can help us with securing our systems is Trivy.
-
flannel
flannel is a network fabric for containers, designed for Kubernetes
Project mention: Is it possible to setup Kubernetes without private network | reddit.com/r/kubernetes | 2021-01-19However, a private VLAN is only one implementation of that. Take a look at Calico's overlay networking or Flannel, using either VXLAN or IPIP. Both wrap your cluster-level communication (private IP to private IP) in a node-level communication packet (public IP to public IP).
-
argo-cd
Declarative continuous deployment for Kubernetes.
Project mention: Helm vs Kustomize - The Fight Between Templating and Patching in Kubernetes | reddit.com/r/kubernetes | 2021-01-26I think this can be bested summed up by this quote by some of the maintainers of ArgoCD.
Index
What are some of the best open-source Docker projects in Go? This list will help you:
Project | Stars | |
---|---|---|
1 | Moby | 59,739 |
2 | traefik | 32,841 |
3 | dive | 24,906 |
4 | drone | 22,594 |
5 | OpenFaaS | 19,365 |
6 | rancher | 16,230 |
7 | Harbor | 14,184 |
8 | ctop | 11,120 |
9 | gvisor | 11,020 |
10 | skaffold | 11,018 |
11 | hydra | 10,327 |
12 | transfer.sh | 10,144 |
13 | Lean and Mean Docker containers | 9,725 |
14 | rook | 8,388 |
15 | containerd | 7,869 |
16 | runc | 7,759 |
17 | goreleaser | 7,611 |
18 | clair | 7,578 |
19 | watchtower | 7,575 |
20 | kind | 7,302 |
21 | trivy | 6,534 |
22 | flannel | 6,197 |
23 | argo-cd | 5,305 |