Docker Container in Linux erstellen

DockerDockerBeginner
Jetzt üben

💡 Dieser Artikel wurde von AI-Assistenten übersetzt. Um die englische Version anzuzeigen, können Sie hier klicken

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

  1. Erstellung: Erstellen Sie ein Docker-Image aus einer Dockerfile.
  2. Versand: Speichern Sie das Docker-Image in einem Registry, z. B. Docker Hub.
  3. 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

  1. Aktualisiere das Paketindex:
sudo apt-get update
  1. Installiere die notwendigen Pakete, damit apt ein Repository über HTTPS verwenden kann:
sudo apt-get install \
    ca-certificates \
    curl \
    gnupg \
    lsb-release
  1. 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
  1. 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
  1. 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

  1. Überprüfe die Docker-Installation:
sudo docker run hello-world
  1. Füge deinen Benutzer zur Docker-Gruppe hinzu, um Docker-Befehle ohne sudo auszuführen:
sudo usermod -aG docker $USER
  1. Konfiguriere Docker, damit er beim Systemstart automatisch startet:
sudo systemctl enable docker.service
sudo systemctl enable containerd.service
  1. (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"
}
  1. Starte den Docker-Dienst neu:
sudo systemctl restart docker

Docker Compose installieren

  1. 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
  1. Mache die ausführbare Datei ausführbar:
sudo chmod +x /usr/local/bin/docker-compose
  1. Überprüfe die Docker Compose-Installation:
docker-compose --version

Erstellen und Ausführen von Docker Containern

Erstellen von Docker Images

  1. Erstelle ein neues Verzeichnis für dein Projekt:
mkdir my-docker-project
cd my-docker-project
  1. Erstelle eine Dockerfile im Projektverzeichnis:
touch Dockerfile
  1. Öffne die Dockerfile und 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;"]
  1. 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;
    }
}
  1. Erstelle das Docker Image:
docker build -t my-nginx-app .

Ausführen von Docker Containern

  1. Füge den Docker Container aus:
docker run -d --name my-nginx-app -p 80:80 my-nginx-app
  1. Überprüfe, ob der Container läuft:
docker ps
  1. Greife auf den Nginx Webserver im Container zu:
curl http://localhost

Verwalten von Docker Containern

  1. Stoppe den laufenden Container:
docker stop my-nginx-app
  1. Starte den gestoppten Container:
docker start my-nginx-app
  1. Entferne den Container:
docker rm my-nginx-app
  1. Entferne das Docker Image:
docker rmi my-nginx-app

Docker Compose

  1. Erstelle eine docker-compose.yml Datei:
version: '3'
services:
  web:
    build: .
    ports:
     - "80:80"
  1. Erstelle und starte die Docker Compose Anwendung:
docker-compose up -d
  1. 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.