Tutorial zum Bereitstellen des Open-Source-Projekts Tcloud mit Docker auf CentOS8

Tutorial zum Bereitstellen des Open-Source-Projekts Tcloud mit Docker auf CentOS8

1. Docker installieren

1. Ich habe Centos7 in der virtuellen Maschine mit Linux 3.10-Kernel installiert. Docker gab offiziell an, dass es mindestens 3.8 sein sollte, und 3.10 oder höher wird empfohlen (Ubuntu erfordert Linux-Kernel 3.8 oder höher).

Melden Sie sich als Root an und überprüfen Sie die Kernelversion wie folgt

uname -a

2. Aktualisieren Sie das Yum-Paket auf die neueste

yum update

(Sie müssen während des Zeitraums eine Bestätigung auswählen. Geben Sie einfach „y“ ein.)

3. Installieren Sie die erforderlichen Softwarepakete. yum-util stellt die Funktion yum-config-manager bereit. Die anderen beiden sind vom Devicemapper-Treiber abhängig.

yum install -y yum-utils device-mapper-persistent-data lvm2

4. Richten Sie die Yum-Quelle ein

yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo (Ali-Lager)

5. Sie können alle Docker-Versionen in allen Repositorys anzeigen und eine bestimmte Version zur Installation auswählen

yum list docker-ce --showduplicates | sort -r

6. Installieren Sie Docker, Befehl: yum install docker-ce-version number, ich habe docker-ce-18.03.1.ce gewählt, wie folgt

yum install docker-ce-18.03.1.ce

(Sie müssen während des Zeitraums eine Bestätigung auswählen. Geben Sie einfach „y“ ein.)

7. Starten Sie Docker mit dem Befehl: systemctl start docker und nehmen Sie dann wie folgt am Boot-Start teil:

systemctl start docker #啟動docker

systemctl enable docker #Docker so einstellen, dass er beim Booten automatisch startet[/code][code]sudo docker run --rm hello-world #Hello-World in Docker starten

8. Wenn Sie das folgende Bild sehen:

Dies bedeutet, dass Doceker erfolgreich installiert wurde.

2. Installieren Sie als nächstes doceker-compose

1. Führen Sie den folgenden Befehl aus, um die aktuelle stabile Version von Docker Compose herunterzuladen:

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

2. Wenden Sie Ausführungsberechtigungen auf die Binärdatei an:

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

3. Hinweis: Wenn der Befehl docker-compose nach der Installation fehlschlägt, überprüfen Sie bitte Ihren Pfad. Sie können auch einen symbolischen Link zu /usr/bin oder einem anderen Verzeichnis in Ihrem Pfad erstellen.

Zum Beispiel:

sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose

4. Überprüfen Sie, ob Docker-Compose erfolgreich installiert wurde

doceker-compose --version

3. Installieren und konfigurieren Sie Git

1. Unter Linux wird Git mit yum installiert, was sehr einfach ist und nur eine Befehlszeile erfordert:

yum -y install git

eingeben:

git --version

Überprüfen Sie, ob Git installiert ist und welche Versionsnummer

2. Git konfigurieren:

git config --global user.name "xxx"git config --global user.email "[email protected]"git config --global core.autocrlf falsegit config --global gui.encoding utf-8

3. Führen Sie den folgenden Befehl aus und drücken Sie die Eingabetaste bis zum Ende

ssh-keygen -t rsa -C [email protected]

4. SSH-Schlüssel generieren

cat ~/.ssh/id_rsa.pub

5. Melden Sie sich bei GitHub an, klicken Sie auf Einstellungen>SSHand GPG-Schlüssel>Neuer SSH-Schlüssel und kopieren Sie den generierten Schlüssel in Key

6. Testen Sie, ob die Konfiguration erfolgreich ist

ssh -T [email protected]

7. Die folgende Meldung wird angezeigt und zeigt an, dass die Konfiguration erfolgreich war.

Hallo RoninLee! Sie haben sich erfolgreich authentifiziert, aber GitHub bietet keinen Shell-Zugriff.

4. Backend-Bereitstellung

1. Führen Sie den folgenden Befehl aus, um den Quellcode abzurufen:

Git-Klon https://github.com/bigbaser/TcloudServer.git

2. Rufen Sie das Verzeichnis TcloudServer\deploy auf und verwenden Sie den folgenden Befehl, um alles abzurufen (warten Sie einen Moment, die Abrufzeit ist lang).

Docker-Compose-Pull

3. Ändern Sie dann die Datei local_config.py.

# Das Konto und das Passwort werden hier in docker-compose.yml konfiguriert. Ändern Sie es in Folgendes: SQLALCHEMY_DATABASE_URI = 'mysql://root:tc123456@mysql:3306/demo?charset=utf8'

4. Initialisieren Sie die Kong-Datenbank erneut (wenn ein Fehler auftritt, führen Sie es erneut aus. Bei Erfolg wird „Datenbank ist auf dem neuesten Stand“ angezeigt).

$ sudo docker-compose up -d kong_database

// Nachdem der Container gestartet wurde, wird die Datenbank lokal in ./volumes/kong_database eingebunden. // Aufgrund von Berechtigungsproblemen schlägt die Initialisierung der Datenbank jedoch fehl. Daher müssen Sie zunächst der Datei Berechtigungen erteilen. $ sudo chmod -R 777 ./volumes/kong_database

$ sudo docker-compose run --rm kong kong migrations bootstrap

5. Dann starten Sie alle Projekte

$ sudo docker-compose up -d

6. Überprüfen Sie den Startstatus

$ sudo docker-compose ps

7. Wenn alle Status angezeigt werden, läuft das System normal, andernfalls überprüfen Sie das Protokoll

sudo docker logs <name> Protokolle anzeigen

8. Öffnen Sie Konga (Kongs Verwaltungsseite, http://localhost:9001), registrieren Sie ein Konto und melden Sie sich an. Erstellen Sie dann eine neue Verbindung unter http://kong:8001

9. Rufen Sie nach erfolgreichem Abschluss die Seite SNAPSHOT auf, klicken Sie auf IMPORT FROM FILE, wählen Sie unsere Datei kong.json aus, geben Sie DETAILS RESTORE ein und wählen Sie alle Importe aus. Möglicherweise sind Fehler aufgetreten. Führen Sie es einfach erneut aus. Zu diesem Zeitpunkt wurde unser Gateway-Dienst ausgeführt. Die Adresse lautet http://localhost:9000

ps: Die Initialisierungsdatei der Datenbank ist init/init.sql. Sie können sudo docker-compose down -v verwenden und dann das Mount-Verzeichnis volume/mysql löschen und dann sudo docker-compose up -d verwenden, um die Datenbank neu zu initialisieren

5. Front-End-Bereitstellung

1. Installieren Sie die Knotenumgebung

Installieren Sie Node.js und npm aus dem CentOS-Repository

Node.js und npm können aus den Standard-CentOS-Repositorys installiert werden.

Listen Sie die Module auf, die das Node.js-Paket bereitstellen, indem Sie Folgendes ausführen:

Yum-Modulliste nodejs

Um das Standardpaket Node.js auf Ihrem CentOS-System zu installieren, geben Sie Folgendes ein:

sudo yum module installiere nodejs

Geben Sie den folgenden Befehl ein:

node --version #Überprüfen Sie, ob node erfolgreich installiert wurde npm --version #Überprüfen Sie, ob npm erfolgreich installiert wurde

2. Verwenden Sie den folgenden Befehl, um den Front-End-Code abzurufen:

Git-Klon https://github.com/bigbaser/Tcloud.git

3. Führen Sie im Stammverzeichnis des Front-End-Projekts aus: npm install, um abhängige Pakete zu installieren

4. Wenn Sie das Abhängigkeitspaket installieren, wird der folgende Fehler gemeldet:

Lösung:

4.1. Geben Sie den folgenden Befehl ein:

npm install -g cnpm --registry=https://registry.npm.taobao.org

4.2. Einen Softlink erstellen:

sudo ln -s {hier ist der Pfad, in dem Sie npm installiert haben}.npm-global/bin/cnpm /usr/local/bin/cnpm

4.3 Eingabe:

cnpm --version prüft, ob die Installation erfolgreich ist.

5. Ändern Sie die BASE_URL-Adresse in den Dateien config/dev.env.js und index.js in http://0.0.0.0

6. Führen Sie das Front-End-Projekt aus:

npm run dev

7. Wenn die Anmeldung unter einem anderen Domänennamen als localhost fehlschlägt, können Sie die Entwicklertools öffnen und prüfen, ob in den Cookies unter Anwendung JWT_TOKEN_TCLOUD_DEV vorhanden ist.

Wenn nicht, suchen Sie das Front-End-Projekt Tcloud/src/store/modules/login.js und ändern Sie Zeile 57 in

Domäne: process.env.NODE_ENV === „Entwicklung“? „localhost“: COOKIE_DOMAIN

Geändert zu:

Domäne: COOKIE_DOMAIN

Ändern Sie dann dev.env.js unter „Konfiguration“ und ändern Sie COOKIE_DOMAIN in den Domänennamen, auf den aktuell vom Front-End zugegriffen wird.

6. Fehlerzusammenfassung:

1. Beim Abrufen des Images durch Docker tritt ein Fehler auf:

1.

FEHLER: Holen Sie sich https://registry-1.docker.io/v2/: wählen Sie TCP: Suchen Sie auf diesem Host nach registry-1.docker.io

2.

FEHLER: Holen Sie sich https://registry-1.docker.io/v2/: wählen Sie TCP: Suchen Sie nach registry-1.docker.io auf xxx.xxx.xxx.xxx:xxxx: lahme Empfehlung

3.

Fehlerantwort vom Daemon: Get https://index.docker.io/v1/search?q=sameersbn&n=25: dial tcp: lookup index.docker.io on 192.168.65.1:53: read udp 192.168.65.2:45190->192.168.65.1:53: i/o timeout

Fehlerantwort vom Daemon: Get https://registry-1.docker.io/v2/: net/http: Anfrage beim Warten auf Verbindung abgebrochen (Client.Timeout beim Warten auf Header überschritten)

2. Analysieren Sie das Problem:

Die Probleme 1 und 2 entstehen dadurch, dass der DNS-Domänenname nicht aufgelöst wird.

Problem 3: Timeout der Netzwerkverbindung, das mit vielen Faktoren zusammenhängt.

3. Lösung:

Frage: 1, 2:

vi /etc/resolv.conf Fügen Sie eine Zeile mit einer DNS-Adresse hinzu: zum Beispiel: nameserver 114.114.114.114 (Diese Methode wird nach einem Neustart des Servers ungültig. Siehe Methode 2: vi /etc/sysconfig/network-scripts/ifcfg-ens33, um die Konfigurationsdatei der Netzwerkkarte zu öffnen, und fügen Sie hinzu: DNS1="8.8.8.8", DNS2="114.114.114.114")

Nach dem Speichern führen Sie den Befehl zum Abrufen des Bildes weiter aus, das war‘s!

Frage 3:

3.1 Finden Sie die verfügbare IP über dig @114.114.114.114 registry-1.docker.io

3.2 Versuchen Sie, /etc/hosts zu ändern, um die Auflösung der mit docker.io verbundenen Domänennamen in andere verfügbare IPs zu erzwingen

3.3 Speichern und erneut versuchen: Docker-Suche sameersbn

Im Anhang finden Sie einige häufig verwendete Docker-Befehle. Ausführlichere Anweisungen finden Sie unter: http://www.docker.org.cn/dockerppt/106.html:

----------------- docker ps Zeigt den aktuell ausgeführten Container an

----------------- docker ps -a Den Status aller Container anzeigen

----------------- Docker Start/Stop ID/Name startet/stoppt einen Container

----------------- Docker-Attach-ID. Geben Sie einen Container ein (verwenden Sie zum Beenden „exit“, dann wird auch der Container angehalten)

----------------- docker exec -ti id startet ein Pseudoterminal, um einen Container interaktiv zu betreten (der Container wird nach dem Beenden mit exit nicht beendet)

----------------- Docker-Bilder Lokale Bilder anzeigen

----------------- docker rm id/name löscht einen Container

----------------- Docker RMI ID/Name löscht einen Spiegel

----------------- docker run --name test -ti ubuntu /bin/bash Kopieren Sie den Ubuntu-Container und benennen Sie ihn um, um ihn zu testen und auszuführen. Rufen Sie den Container dann im interaktiven Pseudoterminalmodus auf und führen Sie „bash“ aus.

----------------- docker build -t soar/centos:7.1 . Erstellen Sie einen Mirror mit dem Namen soar/centos:7.1 über das Dockerfile im aktuellen Verzeichnis.

----------------- docker run -d -p 2222:22 --name testsoar/centos:7.1 erstellt einen Container namens test mit dem Image soar/centos:7.1, führt ihn im Hintergrundmodus aus und ordnet den Port dem Port 2222 des Hosts zu. Der Host-Port ändert sich, wenn der Parameter P zum Neustarten des Containers verwendet wird.

Referenz: https://github.com/bigbaser/TcloudServer/blob/master/deploy/docs/Docker%E9%83%A8%E7%BD%B2.md

Zusammenfassen

Oben finden Sie das vom Herausgeber vorgestellte Tutorial zum Bereitstellen des Open-Source-Projekts Tcloud mit Docker auf CentOS8. Ich hoffe, es wird für alle hilfreich sein!

Das könnte Sie auch interessieren:
  • Detailliertes Tutorial zum Bereitstellen eines Django-Projekts mit Docker auf CentOS8
  • Detaillierte Erklärung der Docker-Nutzung unter CentOS8

<<:  Zusammenfassung der mobilen Anpassungslösung von webpack

>>:  Der Unterschied zwischen useEffect und useLayoutEffect in React

Artikel empfehlen

Lösen Sie das Problem verschwindender Docker-Images

1. Spiegelbilder verschwinden in 50 und 93 [root@...

Methoden zur Verbesserung der Zugriffskontrollsicherheit im Linux-Kernel

Hintergrund Vor einiger Zeit half unser Projektte...

Verwendung des Linux-Crontab-Befehls

1. Befehlseinführung Der Befehl contab (Cron-Tabe...

MySQL-Triggersyntax und Anwendungsbeispiele

Dieser Artikel veranschaulicht anhand von Beispie...

MySQL-Trigger-Verwendungsszenarien und Methodenbeispiele

auslösen: Trigger-Verwendungsszenarien und entspr...

So erstellen Sie einen Nginx-Server mit Docker

Betriebsumgebung: MAC Docker-Version: Docker vers...

Detaillierte Erläuterung des Speichermodells der JVM-Serie

Inhaltsverzeichnis 1. Speichermodell und Laufzeit...

Erläuterung verschiedener Möglichkeiten zum Ausführen von Tomcat unter Linux

Tomcat unter Linux starten und herunterfahren Sta...

W3C Tutorial (6): W3C CSS Aktivitäten

Ein Stylesheet beschreibt, wie ein Dokument angez...

JS implementiert ein zufälliges Namensaufrufsystem

Verwenden Sie JS, um ein zufälliges Namensaufrufs...

Zusammenfassung relevanter Erkenntnisse zur Umsetzung adaptiven Webdesigns

Wie funktioniert „Adaptives Webdesign“? Eigentlich...