Docker bietet Ihnen alles, was Sie zum Erstellen und Ausführen von Containern auf Ihrem Linux-System benötigen. Container ähneln leichtgewichtigen virtuellen Maschinen. Mit ihnen können Sie portable Anwendungs-Images erstellen, die unter Verwendung des Betriebssystem-Kernels Ihres Hosts ausgeführt werden.
Sie können Docker auf Debian-, Fedora-, CentOS- und Raspbian-Plattformen verwenden. Ableitungen dieser Distributionen funktionieren ebenfalls. Docker bietet x86/x64- und ARM-Builds für die meisten unterstützten Plattformen. Wir verwenden ein Debian-System mit dem apt
Paketmanager für dieses Handbuch. Anweisungen speziell für andere Distributionen finden Sie in der Docker-Dokumentation.
Mit Docker Compose können Sie Stapel aus mehreren Containern erstellen und ausführen. Sie erstellen eine YAML-Datei, die die Container Ihrer Anwendung konfiguriert. Sie können dann alle Container mit einem einzigen Befehl starten und miteinander verknüpfen. Compose hilft Ihnen, die Komponenten Ihres Stacks in einzelne containerisierte Dienste aufzuteilen.
Compose wird unabhängig von Docker verteilt. Installieren Sie Docker, bevor Sie Compose hinzufügen – andernfalls kann Compose nicht funktionieren.
VERBINDUNG: Verwendung von Docker zur Containerisierung von PHP und Apache
Installieren Sie Docker
Sie können den Paketmanager Ihres Betriebssystems verwenden, um die neueste Docker-Version zu installieren. Sie müssen das Docker-Repository hinzufügen, Ihre Paketlisten aktualisieren und dann Docker installieren.
Debian/Ubuntu
Beginnen Sie mit dem Hinzufügen von Abhängigkeiten, die für den Installationsprozess benötigt werden:
sudo apt-get update sudo apt-get install apt-transport-https ca-certificates curl gnupg lsb-release
Fügen Sie als Nächstes den GPG-Schlüssel des Docker-Repositorys hinzu:
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
Fügen Sie das Repository zu Ihren Quellen hinzu und aktualisieren Sie Ihre Paketlisten:
echo "deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null sudo apt-get update
Jetzt können Sie Docker installieren:
sudo apt-get install docker-ce docker-ce-cli containerd.io
Fedora
Fügen Sie das Paket-Repository von Docker hinzu:
sudo dnf -y install dnf-plugins-core sudo dnf config-manager --add-repo https://download.docker.com/linux/fedora/docker-ce.repo
Docker installieren:
sudo dnf install docker-ce docker-ce-cli containerd.io
CentOS
Fügen Sie das Paket-Repository von Docker hinzu:
sudo yum -y install yum-utils sudo yum-config-manager --add-repo https://download.docker.com/linux/fedora/docker-ce.repo
Docker installieren:
sudo yum install docker-ce docker-ce-cli containerd.io
Verwendung von Docker ohne Sudo
Der Docker-Daemon wird als root
ausgeführt . Normalerweise müssen Sie Docker-Befehlen sudo
voranstellen . Dies kann mühsam werden, wenn Sie Docker häufig verwenden. Sich selbst zum docker
hinzufügen group können Sie Docker ohne sudo
verwenden .
sudo usermod -aG docker $USER
Sobald Sie in der Gruppe sind, melden Sie sich ab und wieder an. Führen Sie alternativ den newgrp docker
aus Befehl, um sich sofort bei der aktualisierten Gruppe anzumelden. Sie sollten jetzt sudo
löschen können von Docker-Befehlen.
Testen Ihrer Docker-Installation
Jetzt ist Docker installiert, es ist Zeit zu testen, ob es funktioniert! Sie können das minimale hello-world
verwenden Bild.
docker run hello-world:latest
Sie sollten einige Ausgabezeilen in Ihrem Terminal sehen. Docker sucht zuerst nach hello-world:latest
Bild auf Ihrer Maschine. Da es nicht existiert, wird das Image dann aus dem Docker Hub-Repository gezogen.
Sobald das Image gezogen wurde, wird daraus ein neuer Container erstellt. Der Container ist so konfiguriert, dass er eine einfache „Hallo Welt“-Nachricht ausgibt und dann beendet wird. Wenn Sie den Text sehen, funktioniert Ihre Docker-Installation!
Verwalten des Docker-Dienstes
Sie können überprüfen, ob Docker läuft, indem Sie seinen Dienst mit systemctl
überprüfen . Es müssen zwei Komponenten berücksichtigt werden, docker
und containerd
. docker
ist der Docker Engine-Daemon, an den die CLI Befehle sendet. containerd
ist die zugrunde liegende Laufzeit, die Ihre Container tatsächlich ausführt.
sudo systemctl status docker.service sudo systemctl status containerd.service
Sie können die Daemons wie jeden anderen Dienst auf Ihrem System verwalten. Verwenden Sie systemctl stop
wenn Sie Docker vorübergehend stoppen und von Ihren Containern verwendete Systemressourcen freigeben möchten:
sudo systemctl stop docker.service
Sie können den Dienst mit systemctl start
neu starten .
Hinzufügen von Docker-Compose
docker-compose
ist eine separate Binärdatei, die am besten direkt von den GitHub-Versionen des Projekts heruntergeladen wird. Die meisten populären Linux-Distributionen enthalten Compose in ihren Paketmanagern, aber es kann erheblich veraltet sein.
Gehen Sie zur Release-Seite von Docker Compose und notieren Sie sich die neueste Versionsnummer. Zum Zeitpunkt des Schreibens war es 1.29.0
.
Ersetzen Sie die Version, die Sie sehen, anstelle von 1.29.0
im folgenden Befehl. Dadurch wird die richtige Binärdatei für Ihr System heruntergeladen und in /usr/local/bin
abgelegt .
sudo curl -L "https://github.com/docker/compose/releases/download/1.29.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
Als nächstes machen Sie die Datei ausführbar:
sudo chmod +x /usr/local/bin/docker-compose
Sie können jetzt docker-compose
verwenden Befehl in Ihrem Terminal. Versuchen Sie, docker-compose --version
auszuführen zu überprüfen.
Erstellen einer einfachen Docker-Compose-Datei
So verwenden Sie docker-compose
Sie müssen eine docker-compose.yml
erstellen Datei. Dies beschreibt die Container, die den Stack Ihrer Anwendung bilden. Sie können Portbindungen, Umgebungsvariablen, Netzwerke und Volumes angeben, die von Ihren Containern verwendet werden.
Container, die in derselben docker-compose.yml
deklariert sind Datei automatisch Teil desselben Stacks. Sie sind in einem Docker-Netzwerk miteinander verbunden, sodass sie über ihre docker-compose.yml
miteinander kommunizieren können Dienstnamen als Hostnamen.
Hier ist eine einfache docker-compose.yml
um einen PHP-Webserver und eine MySQL-Datenbank auszuführen:
version: "3" services: app: image: php8.0-apache environment: - MYSQL_SERVER=mysql - MYSQL_USERNAME=root - MYSQL_PASSWORD=example ports: - ${PORT:-80}:80 restart: unless-stopped mysql: image: mysql:8.0 expose: - 3306 environment: - MYSQL_ROOT_PASSWORD volumes: - mysql:/var/lib/mysql restart: unless-stopped volumes: mysql:
Sie können beide Dienste starten, indem Sie docker-compose up -d
ausführen . Sie werden sehen, dass beide Bilder von Docker Hub abgerufen werden. Anschließend werden die Container gestartet. Sie können beide mit docker-compose stop
stoppen . Verwenden Sie docker-compose down
um die Behälter zu entfernen.
Die YAML-Beispieldatei zeigt einige Docker Compose-Funktionen. Container werden unter den services
definiert -Knoten, wobei jeder Container sein Docker-image
deklariert . Sie können Shell-Umgebungsvariablen an Container übergeben (environments
) und Docker-Portbindungen einrichten (ports
). Umgebungsvariablen können mithilfe von ${VARIABLE:-DEFAULT}
in Zeichenfolgen interpoliert werden Syntax. Wenn die Variable in Ihrer Shell nicht gesetzt ist, DEFAULT
wird stattdessen als Wert verwendet. Weitere Informationen zu Docker Compose finden Sie in unserem speziellen Leitfaden.
Zusammenfassung
Sie können Docker einfach über die Paketmanager gängiger Linux-Distributionen installieren. Fügen Sie das Docker-Repository hinzu und installieren Sie dann docker-ce
, docker-ce-cli
und containerd.io
. Diese Komponenten bieten Ihnen alles, was Sie zum Erstellen und Ausführen Ihrer Container benötigen.
Sobald Sie einsatzbereit sind, können Sie ein Dockerfile
schreiben und verwenden Sie docker build -t my-app:latest .
es zu bauen. Verwenden Sie dann docker run my-app:latest
um Ihren Container zu starten.
Docker-Compose ist eine zusätzliche Abstraktionsschicht, die es einfacher macht, einen „Stapel“ aus mehreren Containern zu betreiben. Mit Compose müssen Sie nicht mehrere Befehle manuell hintereinander ausführen. Sie können eine deklarative YAML-Datei schreiben und docker-compose up
verwenden um alle Ihre Container gemeinsam zu starten.
VERBINDUNG: Was ist Docker Compose und wie wird es verwendet?