Container leicht gemacht: Eine Einführung in Docker
Erfahren Sie, wie Sie Ihre Anwendungen mithilfe von Docker effizient verwalten können. Von der Installation bis zur Einrichtung eines privaten Registrierungsservers – dieser Leitfaden bietet Ihnen alles, was Sie brauchen, um erfolgreich mit Containern zu starten.
Docker ist eine Plattform zur Bereitstellung und Verwaltung containerisierter Anwendungen. Container sind bei Entwicklern, Administratoren und DevOps-Ingenieuren aufgrund der Flexibilität, die sie bieten, beliebt.
Docker hat drei wesentliche Komponenten:
- Docker Engine
- Docker Tools
- Docker Registry
Die Docker Engine bietet die Kernfunktionen zur Verwaltung von Containern. Sie kommuniziert mit dem zugrunde liegenden Linux-Betriebssystem, um einfache APIs bereitzustellen, um den Lebenszyklus von Containern zu verwalten.
Docker Tools sind eine Reihe von Befehlszeilentools, die mit der von der Docker Engine bereitgestellten API kommunizieren. Sie werden verwendet, um Container auszuführen, neue Images zu erstellen, Speicher und Netzwerke zu konfigurieren und viele weitere Operationen durchzuführen, die sich auf den Lebenszyklus eines Containers auswirken.
Das Docker Registry ist der Ort, an dem Container-Images gespeichert werden. Jedes Image kann mehrere Versionen haben, die durch eindeutige Tags identifiziert werden. Benutzer ziehen vorhandene Images aus dem Registry und laden neue Images darauf hoch. Docker Hub ist ein gehostetes Registry, das von Docker, Inc. verwaltet wird. Es ist auch möglich, ein Registry in eigenen Umgebungen zu betreiben, um die Images näher am Engine zu halten.
Voraussetzungen
Um diesem Tutorial zu folgen, benötigen Sie:
- Einen Ubuntu 16.04 Droplet, der gemäß diesem Ubuntu 16.04 Initial Server Setup Tutorial eingerichtet wurde, einschließlich eines sudo-fähigen Nicht-Root-Benutzers und einer Firewall.
- Ein Docker Hub-Konto.
Schritt 1 — Installation von Docker
Nach dem SSH-Zugriff auf den Droplet führen Sie die folgenden Befehle aus, um vorhandene dockerbezogene Pakete zu entfernen, die möglicherweise bereits installiert sind, und installieren dann Docker aus dem offiziellen Repository:
sudo apt-get remove docker docker-engine docker.io
sudo apt-get install -y apt-transport-https ca-certificates curl software-properties-common
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add –
sudo apt-key fingerprint 0EBFCD88
sudo add-apt-repository „deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable“
sudo apt-get update
sudo apt-get install -y docker-ce
Nach der Installation von Docker überprüfen Sie die Installation mit den folgenden Befehlen:
docker info
docker version
Schritt 2 — Container starten
Docker-Container werden aus vorhandenen Images gestartet, die im Registry gespeichert sind. Bilder in Docker können in privaten oder öffentlichen Repositories gespeichert werden. Private Repositories erfordern eine Authentifizierung der Benutzer, bevor sie Bilder abrufen können. Öffentliche Bilder können von jedem abgerufen werden.
Um ein Bild mit dem Namen hello-world zu suchen, führen Sie den folgenden Befehl aus:
docker search hello-world
Überprüfen Sie die verfügbaren Bilder in Ihrer lokalen Umgebung mit dem folgenden Befehl:
docker images
Da noch keine Container gestartet wurden, werden keine Bilder angezeigt. Sie können nun das Bild herunterladen und lokal ausführen:
docker pull hello-world
docker run hello-world
Schritt 3 — Speicher hinzufügen
Container sind flüchtig, was bedeutet, dass alles, was in einem Container gespeichert ist, verloren geht, wenn der Container beendet wird. Um Daten über die Lebensdauer eines Containers hinaus beizubehalten, müssen wir einen Volume an den Container anhängen. Volumes sind Verzeichnisse aus dem Dateisystem des Hosts.
Beginnen Sie damit, ein neues Verzeichnis auf dem Host zu erstellen:
mkdir htdocs
Starten Sie dann den Container mit einem neuen Schalter, um das Verzeichnis htdocs zu mounten und es auf das Dokumentenstammverzeichnis des Apache-Webservers zu zeigen:
docker run -p 80:80 –name web -d -v $PWD/htdocs:/usr/local/apache2/htdocs httpd
Schritt 4 — Bilder erstellen
Abgesehen davon, dass vorhandene Bilder aus dem Registry ausgeführt werden, können wir unsere eigenen Bilder erstellen und sie im Registry speichern.
Sie können neue Bilder aus vorhandenen Containern erstellen. Die an den Container vorgenommenen Änderungen werden zuerst übernommen und dann die Bilder getaggt und im Registry gepusht.
Lassen Sie uns den httpd-Container erneut starten und das Standarddokument ändern:
docker run -p 80:80 –name web -d httpd
docker exec -it web /bin/bash
cd htdocs
echo ‚
Willkommen bei meiner Webanwendung
‚ > index.html
exit
Schritt 5 — Starten eines privaten Registrierung
Es ist möglich, das Registry in privaten Umgebungen auszuführen, um die Bilder sicherer zu halten. Es reduziert auch die Latenz zwischen dem Docker Engine und dem Bildspeicher.
Docker Registry ist als Container verfügbar, der wie jeder andere Container gestartet werden kann. Da das Registry mehrere Images enthält, ist es eine gute Idee, ein Speichervolumen daran anzuhängen.
docker run -d -p 5000:5000 –restart=always –name registry -v $PWD/registry:/var/lib/registry registry
Jetzt können Sie eine lokale Abbildung taggen und sie zum privaten Registry pushen. Zuerst ziehen wir den Busybox-Container von Docker Hub und taggen ihn.
docker pull busybox
docker tag busybox localhost:5000/busybox
Fazit
Dieses Tutorial hat Ihnen geholfen, mit Docker zu beginnen. Es deckte die wesentlichen Konzepte einschließlich der Installation, Containerverwaltung, Bildverwaltung, Speicherung und privaten Registry ab. Die bevorstehenden Sitzungen und Artikel in dieser Serie werden Ihnen helfen, über die Grundlagen von Docker hinauszugehen – Container leicht gemacht: Eine Einführung in Docker