News
Serverspace Technologien in den VAE: Einführung von Falconcloud
VB
13. September 2023
Aktualisiert September 13, 2023

Docker für Anfänger

Docker FAQ

In einer der vorherigen Artikel, haben wir den Prozess der Ausführung von a untersucht Docker Container aus einem Bild. DockerDas Hauptkonzept von ist darauf ausgerichtet, dass jeder einzelne Prozess über einen eigenen Container mit der notwendigen Umgebung verfügt, die auf seine spezifischen Bedürfnisse zugeschnitten ist. Bei der Bearbeitung komplexer Anwendungen entsteht jedoch eine Herausforderung.
Stellen Sie sich eine Webanwendung vor, die eine Datenbank, einen Webserver und möglicherweise einen PHP-Interpreter erfordert. Dies erfordert bereits die Verwaltung von drei separaten Containern, und es wird umständlich, diese einzeln manuell einzurichten und auszuführen. Um dieses Problem anzugehen, wurde die „dockerDas Dienstprogramm „-compose“ wurde eingeführt. Es ermöglicht die Verwaltung von Containergruppen und erleichtert deren Erstellung, Konfiguration und Entfernung mit einem Befehl. Dieses Tutorial soll eine Einführung geben Docker für Anfänger, wobei der Schwerpunkt auf der praktischen Anwendung liegt docker-komponieren.

Docker-Compose-Setup

Zuerst sollten Sie den „Basis“-Paketsatz installieren:

apt-get update && apt-get install -y ca-certificates curl gnupg && sudo install -m 0755 -d /etc/apt/keyrings && curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg && chmod a+r /etc/apt/keyrings/docker.gpg

pic1

echo \ "deb [arch="$(dpkg --print-architecture)" signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \ "$(. /etc/os-release && echo "$VERSION_CODENAME")" stable" | \ sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

pic2

apt-get update && apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin -y

pic3

Der weitere Vorgang ist sehr einfach, es reicht aus, die vorkompilierte Datei herunterzuladen:

curl -L "https://github.com/docker/compose/releases/download/1.27.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

pic4

Erteilen Sie dann Ausführungsberechtigungen:

chmod +x /usr/local/bin/docker-compose

pic2

Überprüfen Sie dann die Version des Pakets:

docker-compose --version

pic3

Ein Projekt erstellen

Wenn Sie an Projekten mitgearbeitet oder diese gesehen haben Docker, Sie haben vielleicht bemerkt, dass es eine gibt docker-compose-Datei im Projektordner.yaml". In dieser Datei werden die Container konfiguriert, die für Ihr Projekt erstellt werden müssen. Sie werden automatisch mit erstellt docker-komponieren. Die Datei verwendet YAML-Syntax und sollte die folgenden Daten enthalten:

version: 'file_version'
networks: 'used_networks'
volumes: 'used_storages'
services: 'used_containers'

Die Version gibt die Syntaxversion der Datei an. Für verschiedene Versionen stehen unterschiedliche Schlüsselwörter zur Verfügung, was der Abwärtskompatibilität dient. Wir werden Version 3.5 verwenden. Als nächstes müssen wir die Volumes, Netzwerke und die Container selbst auflisten.
Die YAML-Syntax ähnelt JSON, es gibt durch Doppelpunkte getrennte Schlüssel-Wert-Paare, aber hier kann der Wert vollständig leer sein, andere Schlüssel enthalten und es kann auch ein Array von Werten sein, wobei in diesem Fall jedes Array-Element mit a beginnt Bindestrich "-". Aber im Gegensatz zu JSON ist die Einrückung hier sehr wichtig, um die Verschachtelung von Werten anzuzeigen, also übersehen Sie sie nicht.
Erstellen wir einen Ordner mit dem Namen „serverspace-docker' und erstellen Sie eine Datei mit dem Namen 'docker-compose.yaml‘ drin:

mkdir /opt/serverspace-docker && nano /opt/docker-compose.yaml

Und fügen Sie diesen Code ein:

version: '3.5'
services: docker-nginx: image: nginx

pic5

Es reicht aus, den Container auszuführen.

Laufende Container

So starten Sie eine Gruppe von Containern, die in konfiguriert sind docker-compose.yaml müssen Sie zu dem Ordner navigieren, in dem sich diese Konfigurationsdatei befindet, und den Befehl ausführen docker-Komponieren Dort. Zum Beispiel:

cd /opt/serverspace-docker/
docker-compose up

pic9

Danach werden die Container gestartet, ihre Ausgabeströme werden zu einem zusammengeführt und Sie sehen Informationen im Terminal. Um die Container zu stoppen, drücken Sie einfach Strg+C. Wenn Sie die Container im Hintergrund ausführen möchten, verwenden Sie die -d Option:

docker-compose up -d

pic10

Um die Ausführung von Containern im Hintergrund zu stoppen, können Sie die verwenden docker-Komponieren Stopp Befehl:

pic11

Das docker-Aufschreiben Der Befehl stoppt nicht nur alle laufenden Container, sondern entfernt sie auch:

pic12

Weiterleitung von Containerhäfen

Der Container läuft, nützt uns aber im Moment kaum. Mit Dockerkönnen wir Port 80 des Containers an das Host-Betriebssystem weiterleiten und darauf zugreifen. Benutzen Sie dazu die 'Häfen' Direktive. Die Syntax lautet wie folgt:

ports:
- external_port:internal_port

Lassen Sie uns also Port 80 an 8098 weiterleiten

pic13

Dadurch können wir öffnen nginx am 'externen' Port:

pic14

Mounten von Ordnern

Um externe Speicher- oder Hostordner in den Container einzubinden, wird der Abschnitt „Volumes“ verwendet. Die Syntax ist der Arbeit mit Ports sehr ähnlich:

volumes:
- /path/to/external/folder:/path/to/internal/folder

Erstellen wir eine Datei mit dem Namen „index.html“ im aktuellen Projektordner und mounten diesen Ordner anstelle von „/usr/share/“ des Containers.nginxOrdner „/html/“:

echo "You're the best!" > index.html

pic15

Und fügen Sie die Ordner-Mounting-Anweisung hinzu docker-Datei zusammenstellen:

pic16

Nach dem Neustart des Containers sehen Sie Ihre eigene Seite im Browser.

pic17

Volumes konfigurieren

Wir können nicht nur externe Ordner, sondern auch darin erstellte Volumes mounten Docker zum Behälter. Dazu müssen Sie zunächst das Volume zum Hauptabschnitt „Volumes“ hinzufügen. Zum Beispiel, "serverspace-vl". Die meisten Webanwendungen erfordern eine Datenbank, wie z MySQL. Fügen wir einen weiteren Container für diese Datenbank hinzu und fügen unser Volume hinzu. Das Hinzufügen des Volumes erfolgt auf die gleiche Weise wie ein externer Ordner, mit der Ausnahme, dass anstelle eines Ordners der Name des Volumes angegeben wird. Fügen wir hinzu MySQL zu unserer Konfiguration:


docker-mysql:
image: mysql
volumes:
- serverspace-vl:/var/lib/mysql
environment:
- MYSQL_ROOT_PASSWORD=VeryStr0ngPassword
- MYSQL_DATABASE=database
- MYSQL_USER=user
- MYSQL_PASSWORD=AnotherPassw0rd

Hier haben wir auch den Abschnitt „Umgebung“ hinzugefügt, in dem wir Umgebungsvariablen für den Container festlegen. Sie sind erforderlich, um den Standarddatenbanknamen und das Root-Passwort anzugeben.

pic18

 

Netzwerke konfigurieren

Container müssen miteinander kommunizieren. Wir haben schon Nginx und MySQL, und sie müssen noch nicht miteinander kommunizieren. Aber sobald wir einen Container für PhpMyAdmin haben, der auf MariaDB zugreifen muss, wird sich die Situation ändern. Virtuelle Netzwerke dienen der Kommunikation zwischen Containern und können ähnlich wie Volumes hinzugefügt werden. Fügen Sie zunächst das Netzwerk zum Hauptnetzwerk hinzu.Netzwerke" Abschnitt:

networks:
serverspace-network:

Fügen Sie dann dieses Netzwerk für jeden Container hinzu, der „externen“ Zugriff benötigt. Anschließend sind die Container unter ihrem Namen im Netzwerk verfügbar. Fügen wir beispielsweise PhpMyAdmin hinzu und gewähren ihm Zugriff auf die Datenbank:


docker-phpmyadmin:
image: phpmyadmin/phpmyadmin:latest
ports:
- "8099:80"
environment:
- PMA_HOST=docker-mysql
networks:
- serverspace-network

Hier beziehen wir uns in der Variablen PMA_HOST auf „docker-mysql" Host, der dank des gemeinsamen Netzwerks zwischen diesen Containern zugänglich ist. Ebenso im "docker-mysql„Container, unser PhpMyAdmin-Container ist zugänglich als“docker-phpmyadmin". Sie können die Adresse öffnen http://docker-server:8099 und authentifizieren Sie sich, um zu überprüfen, ob die Datenbank funktioniert.

pic19

Anschließen an einen Container

Mit der docker-compose, Sie können eine Verbindung zu jedem Container in der Gruppe herstellen. Nutzen Sie einfach die exec Befehl. Starten Sie das Projekt beispielsweise im Hintergrund:

docker-compose up -d

Dann verbinden wir uns mit dem Container Nginx:

docker-compose exec docker-nginx /bin/bash

pic20

Schlussfolgerungen

In diesem Artikel haben wir die Verwendung von behandelt Docker für Anfänger. Außerdem haben wir beschrieben, wie man einige davon verwendet docker Container als Komplex, eine Einheit. Das Thema ist recht umfangreich und komplex, aber sehr interessant. Wenn Sie das Projekt auf diese Weise auf einem Computer bereitstellen, können Sie es überall dort bereitstellen, wo Sie es benötigen, indem Sie einfach die Konfiguration dorthin kopieren. Deshalb erfreut sich diese Technologie bei Entwicklern und DevOps so großer Beliebtheit.

Abstimmung:
5 aus 5
Durchschnittliche Bewertung: 5
Bewertet von: 1
1101 CT Amsterdam Niederlande, Herikerbergweg 292
+31 20 262-58-98
700 300
ITGLOBAL.COM NL
700 300

Das könnte dir auch gefallen ...

Wir verwenden Cookies, um Ihr Erlebnis auf der Website zu verbessern Serverspace besser. Indem Sie weiterhin auf unserer Website surfen, stimmen Sie unseren zu
Cookies und Datenschutzbestimmungen.