Setup von ContainerD und Buildah – Ersatz für Docker

2021-06-04 von

Buildah und ContainerD erfüllen jeweils nur einen Teil der Aufgaben, welche zuvor Docker erledigt haben. Daher wird beides benötigt, um Docker zu ersetzen. Docker wird abgelöst, da Docker ein erhebliches Sicherheitsrisiko für die jeweilige Maschine auf der es läuft darstellt. Ist ein Benutzer in der Lage Docker-Kommandos auszuführen, so besitzt dieser effektiv Root rechte auf dem Host System.
Dieses Dokument enthält eine Schritt für Schritt Anleitung, die aufzeigt, wie ContainerD und Buildah installiert werden können.

Setup

Docker ist benutzerfreundlicher als ContainerD und einfacher zu installieren.

Docker

Docker kann als Komplettinstallation von der Seite docker.com heruntergeladen und installiert werden.

Dazu muss nur die passende Version für das entsprechende System geladen und installiert werden. Auf der Konsole kann anschließend via docker-Kommando mit der Container-Lösung gearbeitet werden.

ContainerD

Die Installation von ContainerD ist aufwändiger als ein Setup von Docker. Es müssen einige Voraussetzungen geschaffen werden, um diese Software installieren zu können.

Go Setup

ContainerD benötigt die Programmiersprache Go. Ohne die Go-Umgebung ist eine Verwendung von ContainerD nicht möglich.

Gehe zu

https://golang.org/doc/install

und lade das Installationspack für die jeweilige Umgebung

rm -rf /usr/local/go & tar -C /usr/local -xzf go1.16.4.linux-amd64.tar.gz

Anschließend in der lokalen oder globalen .profile folgendes einfügen:

export PATH=$PATH:/usr/local/go/bin

Dies installiert Go und macht es im Pfad verfügbar.

Go Test

Ob Go korrekt funktioniert, kann auf einer neuen Shell getestet werden, indem dort

go version

eingegeben wird.

ContainerD Setup

Konfiguration der Version, welche installiert werden soll.

export VERSION=1.5.0

Herunterladen der Installationsdateien von ContainerD

wget https://github.com/containerd/containerd/releases/download/v${VERSION}/cri-containerd-cni-${VERSION}-linux-amd64.tar.gz

Checksum des heruntergeladenen Archivs verifizieren

wget https://github.com/containerd/containerd/releases/download/v${VERSION}/cri-containerd-cni-${VERSION}-linux-amd64.tar.gz.sha256sum sha256sum --check cri-containerd-cni-${VERSION}-linux-amd64.tar.gz.sha256sum

Entpacken und starten des ContainerD Services

sudo tar --no-overwrite-dir -C / -xzf cri-containerd-cni-${VERSION}-linux-amd64.tar.gz sudo systemctl daemon-reload sudo systemctl start containerd

buildah setup

Dieses Setup ist ein Guide für die installation von buildah unter Ubuntu LTS. In neueren Versionen

export VERSION_ID=$(lsb_release r|awk '{print $2}') sudo sh -c "echo 'deb http://download.opensuse.org/repositories/devel:/kubic:/libcontainers:/stable/xUbuntu_${VERSION_ID}/ /' > /etc/apt/sources.list.d/devel:kubic:libcontainers:stable.list" wget -nv https://download.opensuse.org/repositories/devel:kubic:libcontainers:stable/xUbuntu_${VERSION_ID}/Release.key -O Release.key sudo apt-key add - < Release.key sudo apt-get update -qq sudo apt-get -qq -y install buildah

Damit steht Builder unter einer beliebigen Ubuntu Version zur Verfügung.