Detaillierte Erklärung der Softwarekonfiguration mit Docker-Compose unter Linux

Detaillierte Erklärung der Softwarekonfiguration mit Docker-Compose unter Linux

Vorwort

In diesem Artikel werden einige Docker-Compose-Konfigurationen vorgestellt. Sie können sie als Referenz verwenden, um Ihren eigenen Satz von Docker-basierten Entwicklungs-/Produktionsumgebungskonfigurationen zusammenzufassen. Werfen wir einen Blick auf die ausführliche Einführung.

Installieren Sie Docker und Docker-Compose.

Docker installieren

curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun

Installieren Sie Docker-Compose

sudo curl -L https://github.com/docker/compose/releases/download/1.23.2/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose

Erstellen Sie ein dediziertes Netzwerk

Verwenden Sie das Docker-Netzwerk, um Ihr eigenes dediziertes gemeinsames Netzwerk me_gateway zu erstellen, damit die Docker-Software aufeinander zugreifen kann

Docker-Netzwerk erstellen me_gateway

Docker-Compose, Bereitstellung von Traefik

Ein Reverse-Proxy-Server, er ist sehr schnell, mit tollen Funktionen wie automatischer Erkennung von Diensten, automatischer Anwendung für https usw., Projektadresse, chinesischer Dokumentation.

docker-compose.yml

Dies ist eine Beispielkonfiguration von docker-compose.yml mit traefik

Darunter befindet sich die gemountete Datei ./traefik.toml, deren Konfiguration.

Die gemountete acme.json ist die Konfiguration von Let’s Encrypt

Version: '3'

Version: '3'

Leistungen:
 me_traefik:
 Bild: traefik:1.7.4
 Containername: me_traefik
 Häfen:
 - „80:80“
 - '443:443'
 - „8090:8090“
 Bände:
 – /var/run/docker.sock:/var/run/docker.sock
 - ./traefik.toml:/traefik.toml
 - ./acme.json:/acme.json
 Netzwerke:
 - Webgateway
Netzwerke:
 Webgateway:
 extern:
 Name: me_gateway

traefik.toml

Detaillierte Konfigurationsbeschreibung: http://docs.traefik.cn/toml#acme-lets-encrypt-configuration

Das Folgende ist ein Beispiel. Wenn Sie beim Konfigurieren der Überprüfung auf Probleme stoßen, können Sie sich auf die folgende Konfiguration oder die Kommentare dieses Artikels beziehen

################################################################
# Globale Konfiguration
################################################################

# Debug-Modus aktivieren
#
# Optional
# Standardmäßig: false
#
debug = falsch

# Protokollebene
#
# Optional
# Standard: "FEHLER"
#
logLevel = "FEHLER"

# Einstiegspunkte, die von Frontends verwendet werden sollen, die keinen Einstiegspunkt angeben.
# Jedes Frontend kann seine eigenen Einstiegspunkte angeben.
#
# Optional
# Standard: ["http"]
#
Standard-Einstiegspunkte = ["http","https"]
################################################################
# Entrypoints-Konfiguration
################################################################

# Einstiegspunktdefinition
#
# Optional
# Standard:
# So aktivieren Sie die Basisauthentifizierung für einen Einstiegspunkt
# Verwenden Sie 2 Sätze Benutzername/Passwort: test:test und test2:test2
# Passwörter können mit MD5, SHA1 oder BCrypt verschlüsselt werden: Sie können htpasswd verwenden, um diese Benutzernamen und Passwörter zu generieren.
# [Einstiegspunkte]
# [Einstiegspunkte.http]
# Adresse = ":80"
# [entryPoints.http.auth.basic]
# Benutzer = ["Test:$apr1$H6uskkkW$IgXLP6ewTrSuBkTrqE8wj/", "Test2:$apr1$d9hr9HBB$4HxwgUir3HP4EsggP/QNo0"]
#
# So aktivieren Sie die Digest-Authentifizierung für einen Einstiegspunkt
# Verwenden Sie 2 Sätze Benutzername/Domäne/Passwort: test:traefik:test und test2:traefik:test2
# Sie können htdigest verwenden, um diese Benutzernamen/Domänen/Passwörter [Einstiegspunkte] zu generieren.
 [Einstiegspunkte.http]
 Adresse = ":80"
#[entryPoints.http.weiterleitung]
#entryPoint = "https"
 [Einstiegspunkte.https]
 Adresse = ":443"
 [Eintragspunkte.https.tls]
 [Eintragspunkte.webentry]
 Adresse = ":8090"
 [entryPoints.webentry.auth]
 [entryPoints.webentry.auth.basic]
  Benutzer = ["test:$apr1$H6uskkkW$IgXLP6ewTrSuBkTrqE8wj/"]
################################################################
# API- und Dashboard-Konfiguration
################################################################

# API und Dashboard aktivieren
[API]
Dashboard = wahr
Einstiegspunkt = "Web-Eintrag"

################################################################
# Ping-Konfiguration
################################################################

# Ping aktivieren
[Klingeln]

 # Name des zugehörigen Einstiegspunkts
 #
 # Optional
 # Standard: "traefik"
 #
 # Einstiegspunkt = "traefik"

################################################################
# Docker-Backend-Konfiguration########################################################################

# Verwenden Sie den Standarddomänennamen.
# Kann durch Festlegen des Labels „traefik.domain“ für den Container überschrieben werden.
# Docker-Backend-Konfiguration aktivieren [docker]
Endpunkt = "unix:///var/run/docker.sock"
Domäne = "yimo.link"
watch = wahr
exposedByDefault = falsch
usebindportip = true
Schwarmmodus = false
Netzwerk = "me_gateway"

[Gipfel]
E-Mail = "[email protected]"
Speicher = "acme.json"
Einstiegspunkt = "https"
onDemand = false
onHostRule = true
 [acme.httpChallenge]
 Einstiegspunkt="http"

docker-compose stellt Gogs bereit und verwendet traefik, um den Domänennamen zu binden

Wenn Sie mit MySQL bauen möchten, können Sie auf diese Konfiguration verweisen

docker-compose.yml

Version: '3'
Leistungen:
 ich_gogs:
 Neustart: immer
 Bild: gogs/gogs
 Containername: me_gogs
 Bände:
 - ./Daten:/Daten
 - ./logs:/app/gogs/log
 Häfen:
 - '10022:22'
 - '10080:3000'
 Beschriftungen:
 - 'traefik.backend=me_gogs'
 - „traefik.frontend.rule=Host:git.yimo.link“
 - „traefik.enable=true“
 - „traefik.protocol=http“
 - 'traefik.port=3000'
 Netzwerke:
 - Webgateway
Netzwerke:
 Webgateway:
 extern:
 Name: me_gateway

Während der Initialisierung müssen Sie den Domänennamen auf 0.0.0.0 oder git.yimo.link setzen

Das heißt, der Eintrag ./data/gogs/conf/app.ini ist

DOMAIN = git.yimo.link

Docker-Compose - MySQL bereitstellen

Es ist zu beachten, dass Sie im selben Netzwerk me_mysql direkt zum Herstellen einer Verbindung verwenden können

docker-compose.yml

Version: '3'
Leistungen:
 ich_mysql:
 Bild:mysql:5.7.21
 Containername: me_mysql
 Bände:
 - ./data:/var/lib/mysql
 Häfen:
 - '3306:3306'
 Umfeld:
 -MYSQL_ROOT_PASSWORD=root
 Netzwerke:
 - Webgateway
Netzwerke:
 Webgateway:
 extern:
 Name: me_gateway

Zusammenfassen

Das Obige ist der vollständige Inhalt dieses Artikels. Ich hoffe, dass der Inhalt dieses Artikels einen gewissen Lernwert für Ihr Studium oder Ihre Arbeit hat. Wenn Sie Fragen haben, können Sie eine Nachricht hinterlassen. Vielen Dank für Ihre Unterstützung von 123WORDPRESS.COM.

Das könnte Sie auch interessieren:
  • Beispiele für das Schreiben von Docker-Compose-Konfigurationsdateien und die Verwendung von Befehlen
  • Verwenden von Docker Compose zum Erstellen und Bereitstellen des ElasticSearch-Konfigurationsprozesses
  • Docker-Compose-Installationsmethode für die YML-Dateikonfiguration
  • Detaillierte Erläuterung des Prozesses zum Bereitstellen des verteilten Konfigurationscenters Apollo mit einem Klick mithilfe von Docker Compose
  • Detailliertes Tutorial zur Docker-Compose-Bereitstellung und Konfiguration von Jenkins
  • So installieren und konfigurieren Sie das Orchestrierungstool Docker Compose in Docker.v19
  • Docker-Compose-Schritte zum Konfigurieren der Spring-Umgebung
  • Detaillierte Erklärung der Docker Compose-Konfigurationsdateiparameter

<<:  CentOS7 verwendet RPM-Paket zur Installation von MySQL 5.7.18

>>:  JavaScript implementiert Countdown auf Front-End-Webseite

Artikel empfehlen

So löschen Sie eine MySQL-Tabelle

Das Löschen einer Tabelle in MySQL ist sehr einfa...

Grundlegendes Einführungstutorial zu MySQL-Partitionstabellen

Vorwort In einem aktuellen Projekt mussten wir ei...

Detailliertes Beispiel für die Verwendung von useState in React

Verwendungsstatus useState fügt einer Komponente ...

Erfahren Sie, wie Sie ein Vue-Projekt mit Docker bereitstellen

1.Schreiben Sie davor: Als leichtgewichtige Virtu...

So löschen Sie die MySQL-Registrierung

Spezifische Methode: 1. Drücken Sie [ Win+R ], um...

Ausführliche Erklärung der Closure in JavaScript

Einführung Closure ist eine sehr leistungsstarke ...

Detailliertes Tutorial zum Upgrade von Zabbix Monitoring 4.4 auf 5.0

1. Zabbix-Backup [root@iZ2zeapnvuohe8p14289u6Z /]...

Detaillierte Erläuterung der kombinierten MySQL-Abfrage

Verwenden von UNION Die meisten SQL-Abfragen best...

Detaillierte Erklärung zum Erstellen eines Arrays in JavaScript

Inhaltsverzeichnis Erstellen von Arrays in JavaSc...

Zusammenfassung der verschiedenen Verwendungsmöglichkeiten von JSON.stringify

Vorwort Jeder, der schon einmal JSON verwendet ha...

Grundlegendes Tutorial zur Verwendung der Explain-Anweisung in MySQL

Inhaltsverzeichnis 1. Übersicht 1. Aussagetest er...

Linux-Plattform MySQL ermöglicht Remote-Login

Während des Entwicklungsprozesses stoße ich häufi...

Methode zur Behebung von IE6-Space-Bugs

Schauen Sie sich den Code an: Code kopieren Der Co...