Einführung
Docker ist eine leistungsstarke Containerisierungsplattform, die die Art und Weise, wie Entwickler und IT-Profis Anwendungen verwalten und bereitstellen, revolutioniert hat. In diesem Tutorial führen wir Sie durch den Prozess der Erstellung eines Docker-Containers auf einem Linux-System, von der Installation und Konfiguration von Docker bis zum Erstellen und Ausführen Ihrer eigenen benutzerdefinierten Container.
Docker-Container verstehen
Docker ist eine beliebte Open-Source-Plattform, die Entwicklern ermöglicht, Anwendungen in einer containerisierten Umgebung zu erstellen, bereitzustellen und auszuführen. Container sind leichte, eigenständige und ausführbare Softwarepakete, die alles enthalten, was zum Ausführen einer Anwendung benötigt wird, einschließlich Code, Laufzeitumgebung, Systemtools und Bibliotheken.
Was ist ein Docker-Container?
Ein Docker-Container ist eine standardisierte Softwareeinheit, die Code und alle Abhängigkeiten in einem Paket zusammenfasst, sodass die Anwendung schnell und zuverlässig von einer Computerebene zur anderen läuft. Container werden aus Docker-Images erstellt, die die Blaupausen für die Erstellung von Containern darstellen. Docker-Container sind voneinander und vom Host-Betriebssystem isoliert und bieten eine konsistente und vorhersehbare Laufzeitumgebung.
Vorteile von Docker-Containern
- Portabilität: Docker-Container können auf jedem Computer mit installiertem Docker ausgeführt werden, unabhängig von der zugrunde liegenden Infrastruktur oder dem Betriebssystem.
- Konsistenz: Docker-Container gewährleisten, dass die Anwendung unabhängig vom Umfeld auf dieselbe Weise ausgeführt wird.
- Effizienz: Docker-Container sind leichtgewichtig und verbrauchen weniger Ressourcen als virtuelle Maschinen, da sie den Kernel des Host-Betriebssystems gemeinsam nutzen.
- Skalierbarkeit: Docker-Container lassen sich leicht skalieren, wodurch die Verwaltung und Bereitstellung von Anwendungen einfacher wird.
- Isolation: Docker-Container sind voneinander und vom Host-Betriebssystem isoliert, was die Sicherheit und Stabilität verbessert.
Docker-Container-Architektur
graph TD
A[Docker Host] --> B[Docker Engine]
B --> C[Docker Images]
B --> D[Docker Containers]
D --> E[Anwendung]
D --> F[Bibliotheken]
D --> G[Systemtools]
Docker-Container-Lebenszyklus
- Erstellung: Erstellen Sie ein Docker-Image aus einer Dockerfile.
- Versand: Speichern Sie das Docker-Image in einem Registry, z. B. Docker Hub.
- Ausführung: Erstellen und führen Sie einen Docker-Container aus dem Image aus.
Anwendungsfälle für Docker-Container
- Microservices: Docker-Container eignen sich hervorragend für die Erstellung und Bereitstellung von Anwendungen auf Basis von Microservices.
- Continuous Integration und Deployment: Docker-Container können verwendet werden, um den Build, die Tests und die Bereitstellung von Anwendungen zu automatisieren.
- Cloud-Hosting: Docker-Container lassen sich einfach auf Cloud-Plattformen wie AWS, Azure und Google Cloud bereitstellen und skalieren.
- Maschinelles Lernen und Data Science: Docker-Container können verwendet werden, um Machine-Learning-Modelle und Datenverarbeitungspipelines zu verpacken und bereitzustellen.
Docker auf Linux installieren und konfigurieren
Docker auf Ubuntu 22.04 installieren
- Aktualisiere das Paketindex:
sudo apt-get update
- Installiere die notwendigen Pakete, damit
aptein Repository über HTTPS verwenden kann:
sudo apt-get install \
ca-certificates \
curl \
gnupg \
lsb-release
- Füge den offiziellen Docker GPG-Schlüssel hinzu:
sudo mkdir -p /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
- Richte das Docker-Repository ein:
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
- Installiere Docker Engine, containerd und Docker Compose:
sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-compose-plugin
Docker konfigurieren
- Überprüfe die Docker-Installation:
sudo docker run hello-world
- Füge deinen Benutzer zur Docker-Gruppe hinzu, um Docker-Befehle ohne
sudoauszuführen:
sudo usermod -aG docker $USER
- Konfiguriere Docker, damit er beim Systemstart automatisch startet:
sudo systemctl enable docker.service
sudo systemctl enable containerd.service
- (Optional) Konfiguriere Docker, um einen anderen Speicher-Treiber zu verwenden:
sudo vi /etc/docker/daemon.json
Füge die folgende Konfiguration hinzu und speichere die Datei:
{
"storage-driver": "overlay2"
}
- Starte den Docker-Dienst neu:
sudo systemctl restart docker
Docker Compose installieren
- Lade die neueste Version von Docker Compose herunter:
sudo curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
- Mache die ausführbare Datei ausführbar:
sudo chmod +x /usr/local/bin/docker-compose
- Überprüfe die Docker Compose-Installation:
docker-compose --version
Erstellen und Ausführen von Docker Containern
Erstellen von Docker Images
- Erstelle ein neues Verzeichnis für dein Projekt:
mkdir my-docker-project
cd my-docker-project
- Erstelle eine
Dockerfileim Projektverzeichnis:
touch Dockerfile
- Öffne die
Dockerfileund füge den folgenden Inhalt hinzu:
## Verwende das offizielle Ubuntu 22.04 Image als Basis
FROM ubuntu:22.04
## Aktualisiere das Paketindex und installiere die notwendigen Pakete
RUN apt-get update && apt-get install -y \
nginx \
curl \
&& rm -rf /var/lib/apt/lists/*
## Kopiere die Standard-Nginx Konfigurationsdatei
COPY default.conf /etc/nginx/conf.d/
## Gib Port 80 für Nginx frei
EXPOSE 80
## Starte Nginx beim Starten des Containers
CMD ["nginx", "-g", "daemon off;"]
- Erstelle eine Standard-Nginx Konfigurationsdatei
default.conf:
server {
listen 80;
server_name example.com;
location / {
root /usr/share/nginx/html;
index index.html index.htm;
}
}
- Erstelle das Docker Image:
docker build -t my-nginx-app .
Ausführen von Docker Containern
- Füge den Docker Container aus:
docker run -d --name my-nginx-app -p 80:80 my-nginx-app
- Überprüfe, ob der Container läuft:
docker ps
- Greife auf den Nginx Webserver im Container zu:
curl http://localhost
Verwalten von Docker Containern
- Stoppe den laufenden Container:
docker stop my-nginx-app
- Starte den gestoppten Container:
docker start my-nginx-app
- Entferne den Container:
docker rm my-nginx-app
- Entferne das Docker Image:
docker rmi my-nginx-app
Docker Compose
- Erstelle eine
docker-compose.ymlDatei:
version: '3'
services:
web:
build: .
ports:
- "80:80"
- Erstelle und starte die Docker Compose Anwendung:
docker-compose up -d
- Stoppe und entferne die Docker Compose Anwendung:
docker-compose down
Zusammenfassung
Nach Abschluss dieses Tutorials verfügen Sie über ein fundiertes Verständnis von Docker und seinen Fähigkeiten sowie über die praktischen Kenntnisse, um Docker-Container auf einem Linux-System zu erstellen, zu verwalten und auszuführen. Dieses Wissen ermöglicht es Ihnen, Ihre Anwendungsbereitstellung zu optimieren, die Skalierbarkeit zu verbessern und Ihren gesamten DevOps-Workflow zu optimieren.



