Verfasst in: Englisch / Veröffentlicht: 28.12.2021 / Lesezeit: 6 Minute(n)
Durch die Nutzung von Containern hilft uns Docker, Infrastruktur und Software für Unternehmungen von Projekten jeder Art erforderlich zu liefern.
Die so erstellten isolierten Systeme sind nicht nur einfacher zu konfigurieren und zu erstellen, sondern auch einfacher zu sichern und viel flexibler.
Es gibt Tausende von vorgefertigten Docker-Bildern, die nur darauf warten, von einem einfachen Befehl von Ihnen gestartet werden.
Mein kurzer Artikel verrät, wie man Docker und Docker Compose in einer Debian-basierten Linux-Umgebung installiert, wie wir es auf einem Raspberry Pi oder einem echten Serversystem haben.
Docker Compose hilft uns bei der so genannten Orchestrierung von mehreren Diensten in einfach zu pflegen.yaml
Textdateien.
Wie erwähnt nehmen wir an, dass wir ein Debian-basiertes Betriebssystem haben, wie Ubuntu oder Raspberry Pi OS auf unserer Host-Maschine installiert.
Sicherlich ist Docker auch auf Windows, MacOS oder einem anderen Unix-basierten Betriebssystem gut, aber dort kann die Installation und Konfiguration leicht anders sein.
Im besten Fall haben wir eine neue Installation unseres Systems mit keiner anderen zusätzlichen Software installiert. Das ist keine Grundvoraussetzung, aber hält die Dinge einfacher. Darüber hinaus haben wir Zugang zum Terminal unserer Host-Maschine, höchstwahrscheinlich über Ssh-Sitzung.
Um sicherzustellen, dass wir die neueste Version installieren, folgen wir der offiziellen Installations-Guidline der Docking-Website.
Es sieht aus wie viel mehr zu tun, dann gibt es tatsächlich. Es ist eigentlich nicht mehr dann eine Kopier- & Paste-Betrieb in 3-4 Schritten.
Um es sauber zu halten, wird nach der Installation der Komponenten ein Neustart empfohlen.
Mit Docker-Composses komponieren beginnt die Erstellung einer einzigen Datei namensdocker-compose.yml
.
Es ist am besten, diese Datei nicht nur irgendwo zu platzieren, sondern auf strukturierte Weise, da wir mit vielen von ihnen kommen könnten. Deshalb heißt es Orchestrierung.
Ein Beispiel:
/opt/
wir erstellen einen Unterordner/opt/docker/
./opt/docker/wordpress/
./opt/docker/wordpress/docker-compose.yml
.docker-compose.yml
erhältlich beihttps://hub.docker.com/_/wordpress.Wir erweitern/ändern dieses Beispiel durch einige zusätzliche Parameter für die Permamentnutzung und ein bisschen mehr Komfort im Betrieb. D
Letzendlich könnte es wie das folgende Beispiel aussehen (betrachten, um die Tab-Räume zu halten, da sie in einer .yml-Datei obligatorisch sind):
version: '3.1' services: wordpress-app: container_name: wordpress-app hostname: wordpress-app image: wordpress restart: always ports: - 8080:80 environment: WORDPRESS_DB_HOST: wordpress-db WORDPRESS_DB_USER: exampleuser WORDPRESS_DB_PASSWORD: examplepass WORDPRESS_DB_NAME: exampledb TZ: Europe/Berlin volumes: - ./wordpress:/var/www/html logging: options: max-size: "10m" max-file: "3" wordpress-db: container_name: wordpress-db hostname: wordpress-db image: mysql:5.7 restart: always environment: MYSQL_DATABASE: exampledb MYSQL_USER: exampleuser MYSQL_PASSWORD: examplepass MYSQL_RANDOM_ROOT_PASSWORD: '1' TZ: Europe/Berlin volumes: - ./db:/var/lib/mysql logging: options: max-size: "10m" max-file: "3"
Eine Beschreibung dessen, was wir hier gemacht haben
version: '3.1'
services:
wordpress-app:
container_name: wordpress-app
hostname: wordpress-app
image: wordpress
restart: always
ports:
- 8080:80
environment:
WORDPRESS_DB_HOST: wordpress-db
WORDPRESS_DB_USER: exampleuser
WORDPRESS_DB_PASSWORD: examplepass
WORDPRESS_DB_NAME: exampledb
TZ: Europe/Berlin
volumes:
- ./wordpress:/var/www/html
logging:
options:
max-size: "10m"
max-file: "3"
wordpress-db:
container_name: wordpress-db
hostname: wordpress-db
image: mysql:5.7
restart: always
environment:
MYSQL_DATABASE: exampledb
MYSQL_USER: exampleuser
MYSQL_PASSWORD: examplepass
MYSQL_RANDOM_ROOT_PASSWORD: '1'
TZ: Europe/Berlin
volumes:
- ./db:/var/lib/mysql
logging:
options:
max-size: "10m"
max-file: "3"
wir sagen, es ist ein Unterordner des aktuellen Verzeichnisses. Wenn dieses Verzeichnis nicht existiert, würde es am ersten Start erstellen. Aber es ist besser, diese Verzeichnisse im Voraus zu erstellen, um Dateisystemberechtigungen Probleme und ähnliche zu vermeiden.Alle folgenden Befehle sollten aus dem Verzeichnis unserer./
eine Datei wird gespeichert. vondocker-compose.yml
wir starten unsere erste Anwendung. Es wird beide definierten Dienste / Container starten, währenddocker-compose up -d
wird alle wieder abschalten. vondocker-compose down
wir würden die neueste Version unserer Bilder von Docker Hub herunterladen. Um dieses Update in unserer Umgebung widerspiegeln zu lassen, laufen wir einfach ein anderesdocker-compose pull
. Die Daten an den zuvor definierten Bänden werden dadurch nicht einfach überschrieben. Unser Wordpress-Beispiel ist etwas Besonderes darüber, da es sich eigentlich um einen internen Ordner des Containers handelt, der auch aktualisiert wird. Immer noch bleiben Ihre benutzerdefinierten Daten „alive“. Auch deshalb könnten Updates schließlich scheitern, insbesondere wenn es große Änderungen in der Version unserer Dienste gibt. Es gibt verschiedene Möglichkeiten, dies zu handhaben, was ich einen anderen Tag beschreiben werde.