Johannes Kastl
ojkastl_buildservice
Involved Projects and Packages
Docker Compose is a tool for running multi-container applications on Docker defined using the Compose file format. A Compose file is used to define how the one or more containers that make up your application are configured. Once you have a Compose file, you can create and start your application with a single command: docker compose up.
About update and backward compatibility
Docker Compose V2 is a major version bump release of Docker Compose. It has been completely rewritten from scratch in Golang (V1 was in Python). The installation instructions for Compose V2 differ from V1. V2 is not a standalone binary anymore, and installation scripts will have to be adjusted. Some commands are different.
For a smooth transition from legacy docker-compose 1.xx, please consider installing compose-switch to translate docker-compose ... commands into Compose V2's docker compose .... . Also check V2's --compatibility flag.
Compose Switch is a replacement to the Compose V1 docker-compose (python) executable. It translates the command line into Compose V2 docker compose then run the latter.
Helm is a tool for managing Kubernetes charts. Charts are packages of pre-configured Kubernetes resources.
Kubetui is a terminal user interface (TUI) tool designed for monitoring Kubernetes resources.
It provides an easy-to-use interface for developers and operators to access important information about their applications and infrastructure.
A toolkit for building secure, portable and lean operating systems for containers
longhornctl, a CLI (command-line interface) designed to simplify Longhorn manual operations.
What Can You Do With longhornctl?
- Install and verify prelight requirements.
- Execute one-time Longhorn operations.
- Gain inside into your Longhorn system.
LXC is the well-known and heavily tested low-level Linux container runtime.
LXCFS is a small FUSE filesystem written with the intention of making Linux containers feel more like a virtual machine. It started as a side-project of LXC but is useable by any runtime.
Features
- Pull-through cache for _any_ registry, not just docker.io
- This includes private, authenticated registries. **This means that you can create an unauthenticated mirror of a private registry and expose it to the Internet. Easily. Don't do that.**
- Two storage back-ends
- S3
- Local filesystem
- Small footprint; in my test system, the official `registry` uses approximately 130 MiB of memory to mirror docker.io; five replicas of `oci-registry` combined use approximately 60 MiB to mirror everything in [example.yaml](example.yaml), plus one private registry. CPU is negligible for both.
Client interface for the registry API. This includes regctl for a command line interface to manage registries.
Slim helps you build optimized containers, while Root.io automatically fixes vulnerabilities without disrupting your workflows. Use Slim's open source toolkit to optimize containers, then keep them secure with Root's automated vulnerability remediation – from optimization to continuous security in one
seamless journey.
wolfictl is a command line tool for working with Wolfi
youki is an implementation of the OCI runtime-spec in Rust, similar to runc.
Here is why we are writing a new container runtime in Rust.
* Rust is one of the best languages to implement the oci-runtime spec. Many very nice container tools are currently written in Go. However, the container runtime requires the use of system calls, which requires a bit of special handling when implemented in Go. This is too tricky (e.g. namespaces(7), fork(2)); with Rust, it's not that tricky. And, unlike in C, Rust provides the benefit of memory safety. While Rust is not yet a major player in the container field, it has the potential to contribute a lot: something this project attempts to exemplify.
* youki has the potential to be faster and use less memory than runc, and therefore work in environments with tight memory usage requirements. Here is a simple benchmark of a container from creation to deletion.
Runtime Time (mean ± σ) Range (min … max)
youki 198.4 ms ± 52.1 ms 97.2 ms … 296.1 ms
runc 352.3 ms ± 53.3 ms 248.3 ms … 772.2 ms
crun 153.5 ms ± 21.6 ms 80.9 ms … 196.6 ms
* I have fun implementing this. In fact, this may be the most important.
This is the factory development project for Vagrant