Zum Inhalt springen
Akinware
Serverschrank mit Netzwerktechnik aus der Nähe

Was ist Docker?

Docker packt eine Anwendung mit allem, was sie braucht, in einen Container, der überall gleich läuft. Wie das funktioniert, woher es kommt und wann eine virtuelle Maschine doch die bessere Wahl ist.

Lesezeit
9 Minuten
Autor
Samet Akin
Veröffentlicht

Was ist Docker?

Jede Anwendung braucht mehr als ihren eigenen Code: eine bestimmte Version einer Programmiersprache, Bibliotheken, Einstellungen, manchmal ein bestimmtes Betriebssystem-Detail. Genau daran scheitern Umzüge seit Jahrzehnten, und der Satz dazu ist berühmt: Auf meinem Rechner läuft es doch. Docker löst das Problem, indem es die Anwendung mit allem, was sie braucht, in ein Paket packt. Dieses Paket, der Container, verhält sich überall gleich, egal auf welchem Rechner es startet.

Docker ist dabei kein Cloud-Anbieter, sondern die Technik darunter. Container laufen bei AWS, in Google Cloud, in Azure, auf einem gemieteten Server in Deutschland und auf dem Laptop der Entwicklung, überall auf dieselbe Weise. Genau das hält euch beweglich: Was heute bei einem Anbieter läuft, läuft morgen woanders, ohne dass die Anwendung umgebaut wird.

Beschrieben wird so ein Container in einer kleinen Textdatei, dem Dockerfile. Sie liest sich wie ein Rezept: Nimm diese Grundlage, kopiere den Code hinein, installiere die Abhängigkeiten, starte das Programm. So sieht das für eine kleine Node.js-Anwendung aus:

FROM node:22-alpine
WORKDIR /app
COPY package.json .
RUN npm install
COPY . .
CMD ["node", "server.js"]

Wie funktioniert Docker?

Docker unterscheidet zwei Dinge: das Image und den Container. Das Image ist das fertig gepackte Paket, eine Art Schablone, die sich beliebig oft verwenden lässt. Der Container ist ein laufendes Exemplar dieser Schablone. Aus einem Image lassen sich also drei, zehn oder hundert gleiche Container starten, etwa wenn eine Anwendung mehr Last bekommt und weitere Exemplare gebraucht werden.

Der entscheidende Trick: Ein Container bringt kein eigenes Betriebssystem mit, sondern teilt sich den Kern des Systems mit dem Rechner, auf dem er läuft. Er enthält nur die Anwendung und ihre Abhängigkeiten. Deshalb startet er in Sekunden statt in Minuten, und auf einem Server, auf dem drei virtuelle Maschinen laufen, laufen problemlos dreißig Container. Gebaut und gestartet wird mit zwei kurzen Befehlen:

Fertige Images liegen in einer Registry, einem Lager, aus dem sich jeder Server bedienen kann. Die bekannteste ist Docker Hub, dort gibt es geprüfte Grundlagen für fast alles, von Datenbanken bis zu Webservern. Wer viele Container auf vielen Rechnern betreibt, nimmt dazu ein Verwaltungswerkzeug wie Kubernetes, das von Google stammt und mit denselben Paketen arbeitet.

docker build -t firmenportal .
docker run -p 3000:3000 firmenportal

Wozu wird Docker verwendet?

Container sind heute der Normalfall, wenn Anwendungen entwickelt und betrieben werden. Typische Einsatzgebiete sind:

  • Webanwendungen und Portale, die auf dem Entwicklungsrechner und dem Server identisch laufen sollen
  • Testumgebungen, die sich in Minuten aufbauen und wieder wegwerfen lassen
  • Mehrere Anwendungen auf einem Server, sauber getrennt, ohne sich mit ihren Versionen ins Gehege zu kommen
  • Interne Werkzeuge, die bisher am Rechner einer einzelnen Person hingen
  • Umzüge zwischen Anbietern, weil der Container den Ort nicht festlegt

Bei uns ist Docker Teil der täglichen Arbeit: Wir bauen unsere Projekte in Containern, damit die Testumgebung dieselbe ist wie der spätere Betrieb. Fehler tauchen so dort auf, wo sie billig sind, nämlich vor der Veröffentlichung. Was wir damit umsetzen, steht auf unserer Seite zur Docker-Betreuung und bei den Webanwendungen.

Die Geschichte von Docker

Die Technik hinter Containern gab es in Ansätzen schon lange im Linux-Betriebssystem, aber sie war umständlich zu bedienen. Docker erschien 2013, entwickelt bei einem kleinen Hosting-Unternehmen namens dotCloud, und machte aus der Spezialistentechnik ein Werkzeug für jedermann: ein Befehl zum Bauen, ein Befehl zum Starten. Die Idee traf einen Nerv, und innerhalb weniger Jahre stellte die ganze Branche auf Container um.

Erschienen
2013
Entwickelt von
Docker, Inc., hervorgegangen aus dotCloud
Lizenz
Quelloffen, die Kerntechnik ist frei verfügbar
Unterschied zur virtuellen Maschine
Kein eigenes Betriebssystem, startet in Sekunden
Verbreitung
Standardformat für Container in der ganzen Branche

Vom Nebenprojekt zum Standardformat

Hände auf einer Tastatur vor einem Bildschirm mit Code

Die Vorstellung

Ein kleines Hosting-Unternehmen zeigt sein internes Werkzeug öffentlich und gibt es frei. Die Resonanz ist so groß, dass die Firma ihr eigentliches Geschäft aufgibt und sich in Docker umbenennt.

2013

Was Docker nicht kann

Docker ist ein Verpackungswerkzeug, kein Wundermittel. Ein paar Grenzen gehören zur ehrlichen Antwort dazu:

  • Es macht eine langsame oder fehlerhafte Anwendung nicht besser: verpackt wird, was da ist, samt seiner Schwächen
  • Daten leben nicht im Container, sondern daneben in einem Speicher oder einer Datenbank, und um die muss sich weiterhin jemand kümmern
  • Es braucht jemanden, der sich kümmert: ohne Pflege werden Container zur Last statt zur Hilfe
  • Für eine einfache Webseite auf normalem Webhosting bringt ein Container nichts und macht die Pflege nur komplizierter

Diese Punkte sprechen nicht gegen Docker, sie ordnen es ein. Der Container ist die Verpackung, nicht der Inhalt, und gute Verpackung ersetzt keinen guten Inhalt.

Docker oder virtuelle Maschine?

Vor Docker war die virtuelle Maschine der übliche Weg, mehrere Anwendungen auf einem Server zu trennen. Sie ist ein kompletter Rechner in Software, mit eigenem Betriebssystem, und genau das ist der Unterschied: gründlichere Trennung gegen mehr Gewicht. Eine Orientierung, wann was passt:

  • Viele Anwendungen sollen sparsam auf einem Server laufen: Container, denn sie teilen sich das Betriebssystem
  • Schnelles Starten, Kopieren und Wegwerfen zählt, etwa für Tests: Container, sie stehen in Sekunden
  • Ein anderes Betriebssystem wird gebraucht, etwa Windows auf einem Linux-Server: virtuelle Maschine
  • Strikte Trennung aus Sicherheitsgründen, etwa für Systeme verschiedener Kunden: virtuelle Maschine, die Mauer ist dicker
  • Alte Software, die sich nicht sauber verpacken lässt: virtuelle Maschine als pragmatische Lösung

In der Praxis ist es oft kein Entweder-oder: Bei den Cloud-Anbietern laufen Container in aller Regel auf gemieteten virtuellen Maschinen, die beiden Techniken stapeln sich also. Für die Frage, wie eure Anwendung betrieben werden soll, zählt am Ende der konkrete Fall, und den rechnen wir in der Beratung durch.

Docker aus Kundensicht

Als Auftraggeber seht ihr Docker nie direkt, aber ihr spürt seine Wirkung an drei Stellen. Erstens bei der Qualität: Wenn Entwicklung und Betrieb dieselbe Umgebung nutzen, verschwinden die Fehler, die früher erst auf dem Server auftauchten. Zweitens bei der Übergabe: Eine Anwendung im Container kann ein neuer Dienstleister starten, ohne wochenlang die Eigenheiten des alten Servers zu erforschen. Das Dockerfile dokumentiert, was die Anwendung braucht.

Drittens bei der Anbieterbindung: Ein Container legt nicht fest, wo er läuft. Wird das Hosting zu teuer oder der Anbieter unzuverlässig, zieht die Anwendung um, ohne umgebaut zu werden. Wer eine Anwendung beauftragt, darf deshalb ruhig fragen, ob sie in Containern entwickelt wird. Die Antwort sagt etwas darüber, wie leicht ihr später den Kurs wechseln könnt, und über den laufenden Betrieb, den wir als Hosting und Wartung übernehmen.

Ist Docker die Zukunft?

Container sind längst die Gegenwart: Neue Anwendungen werden standardmäßig so entwickelt und betrieben, und alle großen Cloud-Anbieter behandeln sie als Grundeinheit ihrer Dienste. Diese Entwicklung dreht sich nicht mehr um, dafür ist zu viel Infrastruktur darauf aufgebaut.

Beim Werkzeug selbst ist das Bild differenzierter. Das Containerformat ist seit 2015 ein offener Standard, und neben Docker gibt es inzwischen andere Werkzeuge, die damit arbeiten. Für euch als Auftraggeber ist das die eigentliche Sicherheit: Selbst wenn das Unternehmen Docker eines Tages an Bedeutung verlöre, bleiben die Container lauffähig, weil das Format niemandem allein gehört. Eine Investition in Container ist deshalb keine Wette auf eine Firma, sondern auf einen Branchenstandard.

Was Docker stark macht

Bildschirm mit zwei Anwendungen, die über Pfeile verbunden sind

Läuft überall gleich

Entwicklung, Test und Betrieb nutzen dasselbe Paket. Der Satz, dass es nur auf einem Rechner läuft, gehört damit der Vergangenheit an.

Beleuchtete Tastatur vor einem Bildschirm mit einer Oberfläche

Startet in Sekunden

Kein eigenes Betriebssystem, kein langer Hochlauf. Testumgebungen entstehen in Minuten und verschwinden genauso schnell wieder.

Serverschrank mit blau leuchtenden Laufwerken

Saubere Trennung

Mehrere Anwendungen teilen sich einen Server, ohne sich mit ihren Versionen in die Quere zu kommen. Jede lebt in ihrem eigenen Paket.

Gang zwischen Serverschränken in einem Rechenzentrum

Freie Anbieterwahl

Der Container legt nicht fest, wo er läuft. Eigener Server, deutsches Hosting oder große Cloud: Der Umzug ist eine Entscheidung, kein Umbau.

Wo Container bei uns arbeiten

Wir entwickeln unsere Projekte in Containern und betreiben sie dort, wo es für euch passt.

  • Bildschirm mit einem Dashboard voller Diagramme und Kennzahlen

    Webanwendungen

    Portale und interne Werkzeuge, entwickelt und betrieben in Containern, damit Test und Betrieb identisch sind.
  • Serverschrank mit blau leuchtenden Geräten

    Hosting und Wartung

    Wir halten Images aktuell, spielen Updates ein und sorgen dafür, dass eure Container zuverlässig laufen.
  • Schaubild mit einem Wolkensymbol, das mit Servern und Geräten verbunden ist

    Cloud-Lösungen

    Container bei AWS, Google Cloud, Azure oder auf einem Server in Deutschland: Wir finden den passenden Ort.

Häufige Fragen

Was kostet Docker?

Die Kerntechnik ist quelloffen und kostenlos, auf Servern fallen für Docker selbst keine Lizenzkosten an. Kostenpflichtig ist Docker Desktop, das Programm für den Entwicklungsrechner, und zwar erst ab einer bestimmten Unternehmensgröße. Bezahlt wird ansonsten der Server, auf dem die Container laufen, und die Arbeitszeit für Einrichtung und Pflege.

Was ist der Unterschied zwischen Image und Container?

Das Image ist das fertig gepackte Paket, eine Schablone mit der Anwendung und allem, was sie braucht. Der Container ist ein laufendes Exemplar davon. Aus einem Image lassen sich beliebig viele gleiche Container starten, so wie aus einem Rezept beliebig viele Gerichte entstehen.

Was ist Docker Hub?

Ein öffentliches Lager für fertige Images. Dort liegen geprüfte Grundlagen für Datenbanken, Webserver und Programmiersprachen, die man als Basis für eigene Container nimmt, statt alles selbst zu bauen. Unternehmen betreiben daneben oft ein privates Lager für die eigenen Anwendungen.

Läuft Docker auf Windows?

Ja. Auf Entwicklungsrechnern mit Windows läuft Docker über Docker Desktop, das im Hintergrund eine kleine Linux-Umgebung mitbringt. Die allermeisten Container sind nämlich Linux-Container, und auch auf Servern ist Linux der übliche Unterbau. Für den Alltag merkt man davon wenig: Die Befehle sind auf allen Systemen gleich.

Brauche ich Kubernetes, wenn ich Docker nutze?

Meistens nicht. Kubernetes lohnt sich, wenn viele Container auf mehreren Servern laufen und automatisch verteilt, neu gestartet und skaliert werden sollen. Für eine Handvoll Container auf einem Server ist es zu viel Werkzeug, da reichen die Bordmittel von Docker vollkommen aus.

Ist Docker sicher?

Container trennen Anwendungen voneinander, aber die Mauer ist dünner als bei einer virtuellen Maschine, weil sie sich den Betriebssystemkern teilen. Sicher wird der Betrieb durch Handwerk: aktuelle Images, geprüfte Quellen, sparsame Rechte und regelmäßige Updates. Gut gepflegt sind Container im Alltag nicht unsicherer als andere Betriebsarten.

Weiterlesen

  • Schreibtisch mit Laptop, Tasse und Notizblock

    Was ist Payload?

    Payload ist ein Headless-CMS in TypeScript, das direkt in einer Next.js-Anwendung mitläuft: Webseite und Inhalte sind ein Projekt. Wie das funktioniert, woher es kommt und wann Strapi oder WordPress besser passen, verständlich erklärt.
  • Hand hält ein Smartphone mit einer Auswertungsansicht

    Was ist .NET MAUI?

    Mit .NET MAUI entstehen Apps für Android, iOS, Windows und macOS aus einem einzigen C#-Projekt. Woher das Framework kommt, was es von React Native unterscheidet und wann es sich lohnt, verständlich erklärt.
  • Editor mit geöffnetem Projekt und Dateibaum

    Was ist Blazor?

    Mit Blazor entstehen Weboberflächen in C# statt in JavaScript. Für wen sich das lohnt, wie die zwei Betriebsarten funktionieren und wann React die bessere Wahl ist, verständlich erklärt.

Kontakt und kostenlose Beratung

Hände tippen auf einer Laptop-Tastatur, daneben eine Tasse Kaffee
Telefon0208 78015410E-Mailinfo@akinware.com
Adresse
Huyssenstraße 6G, 46119 Oberhausen
Worum geht es