So erstellen Sie mit Docker von Grund auf ein persönliches SOLO-Blog

So erstellen Sie mit Docker von Grund auf ein persönliches SOLO-Blog

1. Umweltvorbereitung

Wenn Sie über das öffentliche Netzwerk auf Ihren Blog zugreifen möchten, benötigen Sie zunächst einen Cloud-Server, d. h. Sie müssen einen Server von einem großen Cloud-Anbieter mieten. Ich habe beispielsweise 68 Yuan ausgegeben, um einen 1-Core-2G-Server von Qingyun zu kaufen. Der Blog, den Sie jetzt sehen, befindet sich auf diesem Server. Am besten kaufen Sie auch einen exklusiven Domänennamen. Ein Dutzend Mal im Jahr ist genug.

2. Docker installieren

Bildbeschreibung hier einfügen

Weil wir Docker verwenden, um das Solo-Blog bereitzustellen. Daher müssen wir zuerst Docker installieren. Um Docker vorzustellen, suchen Sie bitte selbst nach Baidu.

Konfigurieren Sie die Yum-Quelle

sudo yum install -y yum-utils
sudo yum-config-manager \
--add-repo \
http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

Docker installieren

sudo yum install -y docker-ce docker-ce-cli containerd.io

Start-up

systemctl aktiviere Docker --now

Konfigurationsbeschleunigung

Hier fügen wir die Kernkonfigurations-Cgroup der Docker-Produktionsumgebung hinzu

sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
  "Registrierungsspiegel": ["https://82m9ar63.mirror.aliyuncs.com"],
  "exec-opts": ["native.cgroupdriver=systemd"],
  "log-driver": "JSON-Datei",
  "log-opts": {
    "maximale Größe": "100 m"
  },
  "Speichertreiber": "Overlay2"
}
Ende der Laufzeit
sudo systemctl daemon-reload
sudo systemctl Neustart Docker

prüfen:

Geben Sie die Docker-Version ein und sehen Sie die folgende Anzeige, die Installation war erfolgreich

bild.png

3. Installieren Sie die MySQL Master-Slave-Datenbank

Wir haben Docker bereits installiert. Hier können wir den Befehl direkt verwenden, um die MySQL-Datenbank mit einem Klick bereitzustellen (das vom Autor bereitgestellte Master-Slave-MySQL).

3.1、Vorbereitung der MySQL-Umgebung

mkdir -p /data/master/data/mysql-master && mkdir -p /data/master/data/mysql-slave ##Datenverzeichnis mkdir -p /data/master/master && mkdir -p /data/master/slave ##Konfigurationsverzeichnis

Legen Sie im Konfigurationsverzeichnis zwei Konfigurationsdateien ab, master.cnf und slave.cnf, mit folgendem Inhalt:

[root@website master]# cat master/master.cnf
[mysqld]
log-bin=mysql-bin
binlog_format=Zeile
Server-ID = 1
log-error=/var/log/mysqld.log


[root@website master]# cat slave/slave.cnf
[mysqld]
log-bin=mysql-bin
binlog_format=Zeile
Server-ID = 2
log-error=/var/log/mysqld.log

3.2. Starten Sie die MySQL-Master- und Slave-Datenbanken

Hinweis: Das Kennwort hier ist auf 123456 eingestellt, und das Standard-Datenspeicherverzeichnis von MySQL ist auf /data/master/data abgebildet.

 docker run -itd --name mysql-master -v /data/master/data/mysql-master:/var/lib/mysql -v /data/master/master:/etc/mysql/conf.d -e MYSQL_ROOT_PASSWORD=123456 -p 3306:3306 mysql:5.6
 docker run -itd --name mysql-slave -v /data/master/data/mysql-slave:/var/lib/mysql -v /data/master/slave:/etc/mysql/conf.d -e MYSQL_ROOT_PASSWORD=123456 -p 3316:3306 mysql:5.6

3.3. Melden Sie sich bei der MySQL-Hauptdatenbank an

docker ps -a ## Überprüfen Sie, ob der Status der beiden MySQL-Datenbanken beide UP ist
docker exec -it mysql-master /bin/bash
mysql -u root -p123456 ## Melden Sie sich bei mysql an
Variablen wie „log_bin“ anzeigen; ##Überprüfen Sie den Öffnungsstatus von Bin-Log. Wenn es eingeschaltet ist, bedeutet dies, dass es erfolgreich geöffnet wurde. Wir müssen Bin-Log für die Master-Slave-Synchronisierung öffnen
Master-Status anzeigen; ## Merken Sie sich den abgefragten Dateinamen und die Position, da diese später beim Konfigurieren der Slave-Datenbank verwendet werden. ## Erstellen Sie einen Benutzer und erteilen Sie Berechtigungen CREATE USER 'bakup'@'%' IDENTIFIED BY '123456';
GRANT ALLES AUF *.* AN 'bakup'@'%'; 
Datenbank alleine erstellen;

3.4. Melden Sie sich bei der MySQL-Slave-Bibliothek an

 docker exec -it mysql-slave /bin/bash ## Rufen Sie die Slave-Bibliothek auf mysql -u root -p123456 ## Melden Sie sich bei mysql an
 ändere den Master in master_host='192.168.1.5', master_port=3306,master_user='bakup',master_password='bakup', master_log_file='mysql-bin.000001',master_log_pos=154; ##Konfiguriere die Master-Slave-Verbindung starte den Slave; ## Starte die Slave-Sicherung zeige den Slave-Status\G an; ## Zeige den Status an

Sehen Sie zwei JA und Sie sind fertig!

Bildbeschreibung hier einfügen

3.5 、 Beschreibung der Master-Slave-Parameter

  • master_host: IP-Adresse/Serveradresse der Masterdatenbank
  • master_port: der Port der Master-Bibliothek
  • master_user: Von der Masterdatenbank geöffneter Benutzer
  • master_password: das Passwort des Benutzers
  • master_log_file: Die Protokolldatei der Masterbibliothek, die binäre Protokolldatei, wird synchronisiert. Es handelt sich um die Datei im Show-Master-Status oben
  • master_log_pos: Position in Show-Master-Status oben

4. Erstellen Sie ein Solo-Blog

Nachdem alle Vorbereitungen abgeschlossen sind, können Sie mit der Installation von Solo beginnen
Docker startet alleine

docker run --trennen --name solo --env RUNTIME_DB="MYSQL" --env JDBC_USERNAME="root" --env JDBC_PASSWORD="123456" --veröffentlichen 8080:8080 --link mysql-master:mysql-master --env JDBC_DRIVER="com.mysql.cj.jdbc.Driver" --env JDBC_URL="jdbc:mysql://192.168.1.5:3306/solo?useUnicode=yes&characterEncoding=UTF-8&useSSL=false&serverTimezone=UTC" b3log/solo --listen_port=8080 --server_scheme=http --server_host=localhost --server_port=8080

Docker-Protokolle Solo ## Zeigen Sie die Protokolle des Containers Solo an [INFO ]-[2021-11-12 18:30:32]-[org.b3log.solo.Server:254]: Solo wird gebootet [ver=4.3.1, os=Linux, isDocker=true, inJar=false, luteAvailable=false, pid=1, runtimeDatabase=MYSQL, runtimeMode=PRODUCTION, jdbc.username=root, jdbc.URL=jdbc:mysql://192.168.1.5:3306/solo?useUnicode=yes&characterEncoding=UTF-8&useSSL=false&serverTimezone=UTC]
[INFO ]-[2021-11-12 18:30:34]-[org.b3log.solo.service.InitService:177]: Dies ist Ihr erstes Mal, dass Sie Solo einrichten, Tabellen in der Datenbank initialisieren [MYSQL]
[WARN ]-[2021-11-12 18:30:36]-[org.b3log.solo.service.InitService:150]: Solo wurde nicht initialisiert, bitte öffnen Sie Ihren Browser, um Solo zu initialisieren

Wenn die Meldung „Solo wurde nicht initialisiert. Öffnen Sie bitte Ihren Browser, um Solo zu initialisieren“ angezeigt wird, bedeutet dies, dass Solo erfolgreich installiert, aber nicht initialisiert wurde. Sie können sehen, dass der Port, den wir zuvor gestartet haben, 8080 ist. Es erscheint nicht sinnvoll, den Domänennamen plus den Port zu verwenden, also verwenden wir nginx, um es weiterzuleiten.

5. Nginx implementiert Reverse-Proxy-Solo-Blog

Auf die Installation von nginx werde ich hier nicht näher eingehen. Studenten können bei Baidu nach der Konfigurationsdatei suchen:

http {
    sendfile an;
    mime.types einschließen;
    Standardtyp Anwendung/Oktett-Stream;
    KeepAlive-Timeout 65;
    gzip an;
    Upstream-Backend {
      Server localhost:8080;
    }
    Server {
        hören Sie 80;
        Servername yunxue521.top;
       Standort / {
        Proxy-Passwort http://backend$request_uri;
        Proxy_set_header Host $http_host;
        Proxy_Set_Header X-Real-IP $Remote_Addr;
        }
}

Sie können sehen, dass wir eine Backend-Adresse definiert haben, die auf Port 8080 unseres lokalen Computers verweist. Nginx lauscht auf Port 80. Wenn wir auf Port 80 zugreifen, wird dies an Port 8080 weitergeleitet, wodurch die Portweiterleitung realisiert wird!

VI. Anzeige der Erfolge

Bildbeschreibung hier einfügen

Dies ist das Ende dieses Artikels über das Erstellen eines persönlichen SOLO-Blogs von Grund auf mit Docker. Weitere relevante Inhalte zum Erstellen eines persönlichen SOLO-Blogs von Grund auf mit Docker finden Sie in früheren Artikeln auf 123WORDPRESS.COM oder in den folgenden verwandten Artikeln. Ich hoffe, Sie werden 123WORDPRESS.COM auch in Zukunft unterstützen!

Das könnte Sie auch interessieren:
  • Migrieren des Blogs zu Docker

<<:  Tutorial zum Erstellen eines Kommentarfelds mit Emoticons mithilfe von HTML und CSS

>>:  MySQL-Datenbanktabellendesign mit Baumstruktur

Artikel empfehlen

So implementieren Sie Bildmapping mit CSS

1. Einleitung Mit Imagemaps können Sie Bereiche e...

Beispielcode zum Ändern der Farbe eines PNG-Bildes durch einen CSS3-Filter

Diese Methode verwendet den filter in CSS3 drop-s...

Die Verwendung von Ankerpunkten in HTML_PowerNode Java Academy

Lassen Sie uns nun mehrere Situationen zur Steuer...

Docker-Bereitstellungs- und Installationsschritte für Jenkins

Zuerst benötigen wir einen Server mit installiert...

Anweisungen zur Verwendung der MySQL-IndexOF-Funktion

Wie unten dargestellt: LOCATE(Teilzeichenfolge,Ze...

Javascript-Bereich und Abschlussdetails

Inhaltsverzeichnis 1. Geltungsbereich 2. Geltungs...

Implementierung eines einfachen Weihnachtsspiels mit JavaScript

Inhaltsverzeichnis Vorwort Ergebnisse erzielen Co...

Zusammenfassung von 10 erstaunlichen Tricks von Element-UI

Inhaltsverzeichnis el-scrollbar Bildlaufleiste el...

Implementierungsbeispiel für die Message Board-Funktion von Node.js+Express

Inhaltsverzeichnis Nachrichtenbrett Erforderliche...

Implementierung von Wasserfall-Layout + dynamischem Rendering

Inhaltsverzeichnis Typische Wasserfall-Website Wa...

Detaillierte Erklärung zur Verwendung von React.cloneElement

Inhaltsverzeichnis Die Rolle von cloneElement Anw...

Ubuntu16.04 erstellt eine php5.6-Webserverumgebung

Ubuntu 16.04 installiert standardmäßig die PHP7.0...

js implementiert das klassische Minesweeper-Spiel

In diesem Artikelbeispiel wird der spezifische Co...