Docker – es ist eine Plattform, die die Entwicklung, den Betrieb und die Skalierung von Software erleichtert. Docker verwendet die Virtualisierung auf Betriebssystemebene, um Container zu erstellen und zu verwalten. Container sind eigenständige ausführbare Einheiten von Software, mit denen Sie eine Anwendung und ihre Abhängigkeiten von ihrer Umgebung isolieren können.
In diesem Artikel werden wir untersuchen, wie Docker von innen funktioniert, beginnend mit dem Konzept Weisen. Ein Bild ist eine Vorlage, aus der ein Container erstellt wird. Es enthält alles, was Sie zum Ausführen der Anwendung benötigen: das Betriebssystem, ausführbare Dateien, Bibliotheken, Abhängigkeiten und Einstellungen. Docker verwendet ein geschichtetes Dateisystem, in dem jede Ebene Änderungen an der vorherigen Ebene enthält.
Container in Docker werden mit ausgeführt Daemonen die Anforderungen zum Erstellen, Starten, Stoppen und Löschen von Containern erfüllen. Um den Container zu verwalten, verwendet Docker eine API, die über die Befehlszeilenschnittstelle oder das Docker SDK aufgerufen werden kann. Der Docker-Daemon läuft im Hintergrund und verwaltet die Erstellung und Zerstörung von Containern sowie die Verwaltung ihrer Ressourcen wie Volumina, Netzwerke und Umgebungsvariablen.
Docker Review
Um mit Docker arbeiten zu können, müssen Sie die Docker Engine auf dem Hostsystem installieren. Die Docker Engine ist eine Client-Server-Anwendung, mit der Sie Container erstellen und verwalten können. Die gesamte Kommunikation zwischen dem Docker-Client und dem Server erfolgt über die RESTful-API oder über die Befehlszeile.
Hauptkomponenten von Docker:
| Komponente | Die Beschreibung |
|---|---|
| Docker Image | Dies sind Containervorlagen, die alles enthalten, was Sie zum Ausführen einer Anwendung benötigen: Code, Laufzeitumgebung, Bibliotheken und Abhängigkeiten. Die Abbilder werden basierend auf einer Dockerfile erstellt, die Anweisungen zum Erstellen des Abbilds enthält. |
| Docker Container | Dies sind Instanzen von Containern, die aus Abbildern erstellt werden. Jeder Container wird in einer Sandbox ausgeführt, die die Ressourcen des Hostsystems in Kernel, Speicher und Dateisystem aufteilt. Container können gestartet, angehalten, gelöscht und skaliert werden. |
| Docker Registry | Dies ist ein Image-Repository, in dem alle Docker-Images gespeichert sind. Der Docker Hub ist eine öffentliche Docker Registry, die den Zugriff auf öffentliche Images ermöglicht. Sie können auch Ihre lokale Registrierung erstellen, um Ihre eigenen Images zu speichern und zu verwalten. |
| Docker Compose | Es ist ein Werkzeug zum Beschreiben und Verwalten von Multicontainer-Anwendungen. Die Docker-compose-Datei.yml enthält eine Beschreibung aller Container, deren Konfiguration und Konfiguration. Docker Compose macht es einfach, eine Anwendung mit mehreren Containern zu starten und zu verwalten. |
Insgesamt bietet Docker die Skalierbarkeit, Flexibilität und Beschleunigung der Anwendungsentwicklung. Es ermöglicht Entwicklern, Anwendungen unabhängig von ihrer Umgebung zu erstellen, zu testen und bereitzustellen. Die Containerisierung vereinfacht auch das Abhängigkeitsmanagement, die Bereitstellung und die Skalierung von Anwendungen, was die Arbeit von Systementwicklern und -administratoren erheblich vereinfacht.
Installieren und Konfigurieren von Docker
Um mit Docker zu beginnen, müssen Sie es auf Ihrem System installieren. Im Folgenden finden Sie Anweisungen zum Installieren von Docker auf den gängigsten Betriebssystemen.
Installieren von Docker unter Linux
Verwenden Sie das offizielle Docker-Repository, um Docker unter Linux zu installieren. Klicken Sie auf den Link https://docs .docker.com/install/linux/docker-ce/ubuntu/ und befolgen Sie die vorgeschlagenen Anweisungen für Ihre Linux-Distribution.
Installieren von Docker auf macOS
Um Docker auf macOS zu installieren, müssen Sie Docker Desktop, die integrierte Entwicklungsumgebung von Docker für macOS, herunterladen und installieren. Klicken Sie auf den Link https://docs.docker.com/docker-for-mac/install / und folgen Sie den Anweisungen, um Docker Desktop zu installieren. Starten Sie nach der Installation Docker Desktop von Launchpad aus.
Installieren von Docker unter Windows
Um Docker unter Windows zu installieren, müssen Sie Docker Desktop, die integrierte Entwicklungsumgebung von Docker für Windows, herunterladen und installieren. Klicken Sie auf den Link https://docs.docker.com/docker-for-windows/install / und folgen Sie den Anweisungen, um Docker Desktop zu installieren. Starten Sie nach der Installation Docker Desktop aus dem Startmenü.
Nachdem Docker erfolgreich installiert wurde, müssen Sie es vor der Verwendung konfigurieren.
Docker einrichten
Nachdem Sie Docker unter Linux installiert haben, fügen Sie den aktuellen Benutzer zur Docker-Gruppe hinzu, um ohne sudo auf Docker zugreifen zu können. Führen Sie den folgenden Befehl im Terminal aus:
sudo usermod -aG docker $USER
Melden Sie sich erneut an oder führen Sie den Befehl aus newgrp docker damit die Änderungen wirksam werden.
Unter macOS und Windows wird Docker beim ersten Start von Docker Desktop konfiguriert.
Herzlichen Glückwunsch, Docker wurde erfolgreich auf Ihrem System installiert und konfiguriert. Jetzt können Sie beginnen, Docker zum Entwickeln und Deploy von Anwendungen zu verwenden. Im nächsten Abschnitt des Handbuchs werden wir uns die grundlegenden Docker-Befehle ansehen, die Sie für die Arbeit benötigen.
Grundlegende Konzepte und Komponenten von Docker
Container - dies sind isolierte Umgebungen, in denen Anwendungen ausgeführt werden. Jeder Container hat sein eigenes Dateisystem, Bibliotheken, Umgebungsvariablen und andere Abhängigkeiten. Container können einfach erstellt, gestartet und gestoppt werden, ohne mit anderen Containern oder einem Hostsystem zu interagieren.
Weisen - das sind Bilder von Containern. Sie enthalten alle erforderlichen Abhängigkeiten und Einstellungen zum Ausführen von Anwendungen in einem Container. Images sind die Haupteinheit für die Arbeit mit Docker und können mit Docker-Befehlen erstellt, geändert und verteilt werden.
Repositories - dies sind Docker-Abbildspeicher, in denen sie gespeichert und abgerufen werden können. Repositories können lokal oder remote sein, und Benutzer können ihre eigenen Repositories erstellen oder öffentliche Repositories wie Docker Hub verwenden.
Docker Hub - Dies ist ein öffentliches Docker-Repository, das eine große Anzahl von vorgefertigten Images enthält. Benutzer können den Docker Hub verwenden, um Images für ihre Projekte zu suchen und herunterzuladen.
Docker-Befehle Dies sind Befehlszeilentools, mit denen Sie Container, Images, Repositorys und andere Docker-Komponenten verwalten können. Mit Dockerbefehlen können Sie Container erstellen, starten, stoppen und löschen sowie Images und Repositorys verwalten.
Compose-Dateien dies sind Konfigurationsdateien, die die Zusammensetzung und Konfiguration vieler Docker-Container definieren. Mithilfe von Compose-Dateien können Sie die Abhängigkeiten zwischen Containern, Netzwerkeinstellungen und anderen Einstellungen definieren.
Swarm - es ist ein Container-Orchestrator für die Arbeit mit vielen Containern und Maschinen in Docker. Swarm bietet Funktionen zum Starten, Skalieren und Verwalten von Containern in einem Cluster.
Erstellen und Verwalten von Containern in Docker
Es gibt mehrere grundlegende Befehle zum Erstellen und Verwalten von Containern in Docker. Sie ermöglichen die vollständige Kontrolle über die Container und ihr Verhalten.
1. Das Team docker run wird verwendet, um einen neuen Container basierend auf dem in den Befehlsargumenten angegebenen Image zu erstellen. Anwendungsbeispiel:
docker run -it ubuntu
2. Das Team docker ps zeigt eine Liste der ausgeführten Container an. Anwendungsbeispiel:
3. Das Team docker stop wird zum Anhalten des Containers verwendet. Anwendungsbeispiel:
docker stop container_name
4. Das Team docker rm löscht den Container. Anwendungsbeispiel:
docker rm container_name
5. Das Team docker restart startet einen angehaltenen Container neu. Anwendungsbeispiel:
docker restart container_name
6. Das Team docker exec ermöglicht das Ausführen von Befehlen innerhalb eines Containers. Anwendungsbeispiel:
docker exec -it container_name command
docker logs container_name
8. Das Team docker inspect zeigt Informationen zum Container an. Anwendungsbeispiel:
docker inspect container_name
Mit diesen Befehlen können Sie Container in Docker erstellen, verwalten und überwachen, sodass Sie effizient mit Ihren Anwendungen und Diensten arbeiten können.
Arbeiten mit Docker-Images
Das Arbeiten mit Docker-Images umfasst die folgenden grundlegenden Schritte:
- Abbild erstellen: Sie können ein Abbild aus einem primären Abbild oder aus einer Dockerfile erstellen. Um ein Dockerfile-basiertes Abbild zu erstellen, müssen Sie alle erforderlichen Anweisungen in einer Textdatei mit dem Namen Dockerfile beschreiben.
- Abbild laden: Docker-Abbilder können aus dem zentralen Docker-Repository (Docker Hub) oder aus einem lokalen Repository heruntergeladen werden.
- Container starten: Docker-Images werden zum Ausführen von Containern verwendet. Ein Container ist eine Instanz eines Images, das in einer isolierten Umgebung ausgeführt wird und über die Virtualisierung des Betriebssystems und die Kontrolle über die Ressourcen auf die Ressourcen des Hostsystems zugreifen kann.
- Aktualisieren von Images: Nachdem Sie das Image erstellt haben, können Sie es aktualisieren, indem Sie der Dockerfile neue Anweisungen hinzufügen und das Image neu erstellen. Sie können aktualisierte Images verwenden, um neue Container auszuführen oder vorhandene Container zu aktualisieren.
- Verwalten von Images: Docker bietet Befehle zum Verwalten von Images, einschließlich Speichern eines Images auf der Festplatte, Laden eines Images aus einer Datei, Löschen eines Images und mehr.
Um das Arbeiten mit Docker-Images einfacher und effizienter zu gestalten, wird empfohlen, Containerregistrierungen wie Docker Hub oder lokale Registern zu verwenden, mit denen Sie Docker-Images zwischen verschiedenen Knoten speichern und verteilen können.
| Das Team | Die Beschreibung |
|---|---|
| docker build | Erstellt ein Docker-Image aus einer Dockerfile. |
| docker pull | Lädt ein Docker-Abbild aus der Registrierung. |
| docker push | Sendet ein lokales Docker-Abbild an die Registrierung. |
| docker run | Führt einen Container basierend auf dem angegebenen Docker-Image aus. |
| docker stop | Stoppt den Betrieb des Containers. |
| docker rm | Löscht den Container. |
| docker rmi | Löscht das Docker-Abbild. |
Die Arbeit mit Docker-Images macht es daher einfach und bequem, Container zu erstellen, zu laden, auszuführen, zu aktualisieren und zu verwalten, um die Skalierbarkeit und Isolation von Anwendungen in der Docker-Umgebung zu gewährleisten.
Verwenden von Docker in verschiedenen Bereichen
Software-Entwicklung
Im Entwicklungsbereich bietet Docker die Möglichkeit, Container mit einer bestimmten Konfiguration zu erstellen, die alle erforderlichen Abhängigkeiten für die Anwendung enthalten. Dies ermöglicht es Entwicklern, ihre Anwendungen problemlos in allen Umgebungen zu portieren, zu testen und zu skalieren.
DevOps und kontinuierliche Integration/Bereitstellung
Docker ist der Containerisierungskern, auf dem viele Continuous Integration/Deployment (CI/CD) -Systeme basieren. Dank Docker können DevOps-Teams Anwendungen schnell und effizient in verschiedenen Umgebungen erstellen, testen und bereitstellen, um die Entwicklung und Bereitstellung von Software zu automatisieren und zu vereinfachen.
Cloud Computing und Skalierung
Mit Docker können Sie die Ressourcen von Cloud-Plattformen wie Amazon Web Services (AWS) und Google Cloud Platform (GCP) effizient nutzen. Mit der Möglichkeit, Container auf verschiedenen Servern auszuführen, ermöglicht Docker die einfache Skalierung von Anwendungen in der Cloud je nach Bedarf.
Testen und reproduzierbare Umgebungen
Wenn Sie Docker während des Tests verwenden, können Sie reproduzierbare Umgebungen mit bestimmten Abhängigkeiten erstellen. Dies macht den Testprozess zuverlässiger und gibt den interagierenden Teams die Gewissheit, dass sie in derselben Umgebung arbeiten.
Forschung und wissenschaftliche Berechnungen
Docker wird auch im Bereich der wissenschaftlichen Forschung und Berechnung aktiv eingesetzt. Docker-Container können verwendet werden, um komplexe wissenschaftliche Berechnungen zu isolieren und zu reproduzieren, so dass Forscher und Wissenschaftler ihre Ergebnisse schnell teilen und Experimente in einer autonomen Umgebung wiederholen können.
Sicherheit und Zuverlässigkeit von Docker
Docker bietet eine Reihe von integrierten Mechanismen, um die Sicherheit und Zuverlässigkeit von Containern zu gewährleisten. Sie helfen, Risiken zu minimieren und Schwachstellen zu vermeiden.
1. Isolierung. Jeder Container in Docker wird in einer Sandbox ausgeführt, die vom Hostsystem und anderen Containern getrennt ist. Dadurch wird verhindert, dass sich Ressourcen überlappen und unerwünschte Interaktionen zwischen Containern auftreten.
2. Aufteilen von Zugriffsrechten. Mit Docker können Sie die Berechtigungsstufen für jeden Container und eine Reihe von Rechten festlegen, die er verwenden kann. Dies reduziert das Risiko von unbefugtem Zugriff und böswilligem Zugriff erheblich.
3. Updates ohne Unterbrechung. Mit Docker können Sie Aktualisierungen und Änderungen an laufenden Containern vornehmen, ohne sie zu stoppen. Dadurch werden Ausfallzeiten vermieden und Leistungsverluste minimiert.
4. Überwachung und Protokollierung. Docker bietet Tools zum Überwachen und Protokollieren von Aktivitäten in Containern. Dies hilft, Probleme zu erkennen, vorgenommene Änderungen zu verfolgen und schnell auf kompromittierte Systeme zu reagieren.
5. Ressourcen verwalten. Mit Docker können Sie die für jeden Container verfügbaren Ressourcen verwalten und einschränken. Dies hilft bei der Bekämpfung von Überlastung und verbessert die Effizienz der Computerressourcen.
6. Sicherheitsupdate. Docker wird aktiv aktualisiert und gepatcht, um mögliche Schwachstellen zu schließen. Das Benachrichtigungssystem hilft Ihnen, schnell neue Versionen zu installieren und die Sicherheit von Containern zu gewährleisten.
Docker ist nicht nur ein praktisches Entwicklungs- und Deployment-Tool, sondern auch eine robuste Plattform mit einer breiten Palette von Werkzeugen, um die Sicherheit und Zuverlässigkeit Ihrer Container zu gewährleisten.
Docker-Skalierung
Es gibt mehrere Ansätze zum Skalieren von Docker:
- Horizontale Skalierung: bei diesem Ansatz werden mehrere Container auf mehreren Knoten im Netzwerk ausgeführt, um den Lastenausgleich und die Systemleistung zu verbessern.
- Vertikaler Zoom: In diesem Fall wird die Verwendung von Docker-Containern auf einem einzelnen Knoten im Netzwerk erhöht, wodurch das System mehr Anforderungen und Vorgänge verarbeiten kann.
- Automatische Skalierung: Mit diesem Ansatz können Sie die Anzahl der Container automatisch basierend auf der aktuellen Auslastung skalieren, was eine effizientere Ressourcennutzung ermöglicht.
Verschiedene Tools und Technologien wie Docker Swarm, Kubernetes, Amazon ECS und andere können zum Skalieren von Docker verwendet werden. Sie ermöglichen die Verwaltung der Skalierung von Containern, die Lastverteilung zwischen Knoten, die automatische Skalierung von Anwendungen und die hohe Verfügbarkeit des Systems.
Insgesamt ist die Skalierung von Docker ein wichtiger Aspekt seiner Funktionalität, um skalierbare Anwendungen und Systeme zu erstellen und zu verwalten.
Debuggen und Überwachen von Docker-Containern
Debuggen von Docker-Containern:
Sie können verschiedene Tools zum Debuggen von Docker-Containern verwenden, z. B.:
- docker logs: Mit diesem Befehl können Sie die Containerprotokolle anzeigen. Sie können es verwenden, um Fehler und Probleme in Ihrem Container zu verfolgen.
- docker exec: Mit diesem Befehl können Sie sich in den Container einloggen und die Befehle in seinem Kontext ausführen. Dies kann zum Debuggen nützlich sein, z. B. um nach Dateien zu suchen, Umgebungsvariablen zu konfigurieren usw.
- docker inspect: Mit diesem Befehl erhalten Sie detaillierte Informationen zum Container, einschließlich dessen Einstellungen und Netzwerkschnittstellen. Sie können diesen Befehl verwenden, um den Zustand des Containers zu analysieren und Probleme zu identifizieren.
Mit diesen Tools können Sie den Zustand des Containers bewerten, die Protokolle analysieren und Debugvorgänge durchführen, um Probleme in Ihrer Anwendung zu erkennen und zu beheben.
Überwachen von Docker-Containern:
Die Überwachung von Docker-Containern umfasst die Verfolgung und Analyse von Metriken wie CPU-, Speicher- und Speicherplatz-Auslastung sowie die Überwachung des Netzwerks und anderer Containerdetails.
Es gibt mehrere Tools zum Überwachen von Docker-Containern, zum Beispiel:
- Docker Stats: Mit diesem Befehl können Sie die aktuellen Nutzungsstatistiken für Containerressourcen wie CPU, Speicher, Netzwerk und Blockgeräte anzeigen.
- Docker Monitor: Es ist ein Tool, das den Status von Containern automatisch überwacht und Benachrichtigungen sendet, wenn Probleme auftreten. Es kann nützlich sein, um eine große Anzahl von Containern zu verwalten und zu überwachen.
- Docker Bench for Security: Dieses Tool bietet eine automatische Sicherheitsüberprüfung für Ihre Docker-Hosts und Container. Es wird Ihnen helfen, Schwachstellen zu identifizieren und Empfehlungen zur Behebung von Schwachstellen zu geben.
- Überwachungstools von Drittanbietern: Es gibt viele Tools, die von Drittanbietern entwickelt wurden, mit denen Sie Docker-Container überwachen und verwalten können. Dazu gehören Tools wie Prometheus, Grafana, Datadog und viele andere.
Mit diesen Tools zum Debuggen und Überwachen von Docker-Containern können Sie Ihre Anwendungen in Containern effizient entwickeln, überwachen und verwalten.