Docker will das Entwickeln von Wasm-Anwendungen vereinfachen

Als komplementäre Technologie zu Linux-Containern integriert Docker WebAssembly in sein Desktop-Werkzeug – zunächst als Technical Preview.

In Pocket speichern vorlesen Druckansicht 2 Kommentare lesen
Das Konferenzgebäude der DockerCon.

(Bild: Merlin Schumacher (c't magazin))

Lesezeit: 2 Min.
Von
  • Udo Seidel

Im Rahmen der derzeit in Detroit stattfindenden nordamerikanischen KubeCon 2022 hat Docker eine neue Version des Produktes Docker-Desktop vorgestellt. Der Clou dabei ist, dass die Software nun mit WebAssembly (kurz: Wasm) umgehen kann. Die Funktion ist derzeit noch im Stadium einer technischen Vorschau (Technical Preview) und nicht für den produktiven Einsatz empfohlen.

Die WebAssembly-Technologie verfolgte ursprünglich den Ansatz, vorkompilierten Bytecode direkt im Browser auszuführen. Das soll die Entwicklung leistungsfähigerer Webanwendungen fördern. Viele Entwicklerinnen und Entwickler finden daran Gefallen und entdecken auch neue Anwendungsmöglichkeiten für Wasm. Der inzwischen allgemeiner gefasste Ansatz von WebAssembly sieht indes vor, das Ausführen von Bytecode in isolierten Umgebungen zu ermöglichen.

Für die Firma Docker ist Wasm damit eine komplementäre Technologie zu Linux-Containern – und die Integration in das Werkzeug Docker-Desktop daher naheliegend. Wer schon jetzt einen Blick unter Motorhaube werfen will, findet fertige Pakete für Windows, macOS und Linux. Letzteres sogar in der 64-Bit-Variante für ARM-Plattformen. Der Hersteller weist in seiner Ankündigung allerdings ausdrücklich darauf hin, dass es sich um technische Vorschau handelt und noch nicht alles problemlos funktioniert. Eine Sicherungskopie der eigenen Container-Images ist daher jedem zu empfehlen, der Wasm mit Docker-Desktop ausprobieren möchte.

Docker nutzt das containerd-shim-Konstrukt zur Integration von Wasm (Abb. 1).

(Bild: Docker )

Für die Integration von Wasm greift Docker auf das Shim-Prinzip zurück (siehe Abbildung 1). Hier gibt es nun neben "containerd-shim" auch "containerd-wasm-shim". Letztere shim-Komponente verwendet eine andere Laufzeitumgebung. Bei Linux-Containern ist es oft runc, bei Wasm heißt sie wasmedge. Beim Starten der entsprechenden Anwendung mit dem docker-Kommando müssen Anwenderinnen und Anwender diese andere Runtime über die Option --runtime=io.containerd.wasmedge.v1 angeben. Mehr Details finden sich in der Dokumentation des Herstellers.

Zur besseren Umsetzung ihrer Wasm-Bemühungen tritt die Firma Docker der Bytecode Allianz bei. Diese entstand 2019 zur verbesserten Unterstützung und Entwicklung der WebAssembly-Technologie.

(map)