Docker stellt Mysql, .Net6, Sqlserver und andere Container bereit

Docker stellt Mysql, .Net6, Sqlserver und andere Container bereit

Installieren Sie Docker unter CentOS 8

1. Yum aktualisieren

[root@VM-24-9-centos ~]# yum -y update

2. Installieren Sie containerd.io

# centos8 verwendet standardmäßig Podman anstelle von Docker, daher ist containerd.io erforderlich
[root@VM-24-9-centos ~]# yum install https://download.docker.com/linux/fedora/30/x86_64/stable/Packages/containerd.io-1.2.6-3.3.fc30.x86_64.rpm -y

# Installieren Sie einige andere Abhängigkeiten [root@VM-24-9-centos ~]# yum install -y yum-utils device-mapper-persistent-data lvm2
[root@VM-24-9-centos ~]# yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

3. Docker installieren

[root@VM-24-9-centos ~]# yum install -y docker-ce

4. Docker starten

# Docker starten
[root@VM-24-9-centos ~]# systemctl starte Docker
# So einstellen, dass es beim Booten automatisch startet [root@VM-24-9-centos ~]# systemctl enable docker

5. Stellen Sie den Container so ein, dass er automatisch startet

[root@VM-16-7-centos ~]# docker update --restart=always Containername --restart Spezifische Parameterwertdetails:
	nein: Starten Sie den Container nicht neu, wenn der Container beendet wird. bei Fehler: Starten Sie den Container nur neu, wenn der Container mit einem Status ungleich Null beendet wird. immer: Starten Sie den Container unabhängig vom Beendigungsstatus neu.

Mysql8.0-Bereitstellung

1. Ziehen Sie das Bild

[root@VM-24-9-centos ~]# Docker Pull MySQL
# Wenn Sie eine bestimmte Version des Images abrufen müssen, fügen Sie die Versionsnummer hinzu: [root@VM-24-9-centos ~]# docker pull mysql:7.6

2. Erstellen Sie eine lokale Datei zum Mounten

[root@VM-24-9-centos ~]# mkdir -p /data/mysql/data
[root@VM-24-9-centos ~]# mkdir -p /data/mysql/conf
[root@VM-24-9-centos ~]# mkdir -p /data/mysql/conf/conf.d

3. Starten Sie einen Container und kopieren Sie die Konfigurationsdatei /etc/mysql/my.cnf im Container auf unseren lokalen Computer für die Standardkonfigurationsdatei

# Starten Sie einen Container, um die Konfigurationsdatei [root@VM-24-9-centos ~] zu kopieren. # docker run -d -p 3306:3306 --name mysqlone mysql:latest
07c314a5e57c3a3ca8ab8ffe5937b4fdb6c87a831b7e15666ee7266feb5af42a
[root@VM-24-9-centos ~]# docker cp mysqlone:/etc/mysql/my.cnf /data/mysql/conf/

# Stoppen und löschen Sie den Container [root@VM-24-9-centos ~]# docker stop mysqlone
mysqlone
[root@VM-24-9-centos ~]# docker rm mysqlone
mysqlone

# Überprüfen Sie, ob die Konfigurationsdatei erfolgreich kopiert wurde [root@VM-24-9-centos ~]# cd /data/mysql/conf/
[root@VM-24-9-centos conf]# ls
meine.cnf

4. Verwenden Sie lokale Konfigurationsdateien, um die Konfigurationsdateien im Container bereitzustellen und die Datendateien bereitzustellen

docker run -d -p 3306:3306 --name mysqlmaster -e MYSQL_ROOT_PASSWORD='jing1996' -v /data/mysql/conf:/etc/mysql -v /data/mysql/data:/var/lib/mysql mysql

Mysql8.0-Bereitstellung Master-Slave-Replikation

1. Schreiben Sie die Konfigurationsdatei

[mysqld]
pid-Datei = /var/run/mysqld/mysqld.pid
socket = /var/run/mysqld/mysqld.sock
Datenverzeichnis = /var/lib/mysql
secure-file-priv= NULL

# Die benutzerdefinierte Konfiguration sollte hier stehen
!includedir /etc/mysql/conf.d/
Server-ID = 1
log-bin=mysql-bin
binlog-do-db=morin
binlog-ignore-db=mysql
  • server-id: Server-ID. Sie dürfen nicht identisch sein.
  • log-bin: Binärdatei-Speicherpfad, nicht erforderlich, nach mysql8 wird es standardmäßig in /var/lib/mysql gespeichert
  • binlog-do-db: Die Datenbanken, die synchronisiert werden müssen. Wenn mehrere Datenbanken vorhanden sind, trennen Sie diese durch Leerzeichen: db1 db2 db3
  • binlog-ignore-db: Wenn es mehrere Datenbanken gibt, die nicht synchronisiert werden müssen, trennen Sie diese durch Leerzeichen: db1 db2 db3

2. Knotenkonfiguration

2.1 Master-Knoten-Konfiguration

# Fügen Sie ein Datenbankkonto zur Synchronisierung hinzu. CREATE USER 'rootslave1'@'110.40.158.72' IDENTIFIED WITH mysql_native_password BY '123456';
# Autorisieren Sie die Berechtigung zum Replikations-Slave auf *.* für „rootslave1“@„110.40.158.72“;
# Konfiguration aktualisieren FLUSH PRIVILEGES;
# Abfrage aller ausgewählten Benutzer, Hosts aus mysql.user;
#Fragen Sie den Status des Masterknotens ab. Show Master Status;

2.2 Slave-Knotenkonfiguration

# Master-Slave-Synchronisierung konfigurieren. Master ändern in master_host='xxxx',master_user='rootslave1',master_password='123456',master_log_file='mysql-bin.000003',master_log_pos=2384;
# Synchronisierung aktivieren, Slave starten;
# Den Status des Slave-Knotens anzeigen. Slave-Status anzeigen.

Notiz:

  • Die Parameter master_log_file und master_log_pos zum Konfigurieren der Master-Slave-Synchronisierung basieren auf dem Befehl query master node status in der Masterknotenkonfiguration. Die Parameter hier werden direkt zur Verwendung kopiert.
  • Überprüfen Sie nach dem Starten der Synchronisierung den Status des Slave-Knotens. Sie müssen sicherstellen, dass „Salve_IO_Running“ und „Salve_SQL_Running“ auf „Ja“ stehen, damit die Synchronisierung erfolgreich ist. Wenn Nein lautet, bedeutet dies normalerweise, dass die Werte der beiden oben genannten Felder nicht korrekt sind.

Wenn die zu synchronisierende Datenbank bereits in der Master-Datenbank vorhanden ist, wird sie nicht automatisch synchronisiert. Es wird empfohlen, die Daten beizubehalten, die Datenbank zu löschen und neu zu erstellen. Sie wird dann automatisch mit der Slave-Datenbank synchronisiert.

.Net6-Projekt veröffentlicht

1. Veröffentlichen Sie das Projekt in VS und schreiben Sie die Dockerfile-Datei

Der Inhalt der Docker-Datei ist wie folgt:

VON mcr.microsoft.com/dotnet/aspnet:6.0 AS-Basis
ARBEITSVERZEICHNIS /app
EXPOSE 8989

VON mcr.microsoft.com/dotnet/sdk:6.0 AS-Build
ARBEITSVERZEICHNIS /src
KOPIEREN . .

EINSTIEGSPUNKT ["dotnet", "x.API.dll"]

2. Erstellen Sie das Image

Kopieren Sie die Release-Dateien (einschließlich Dockerfile-Dateien) auf den Centos-Server und erstellen Sie dann das Image im aktuellen Verzeichnis

[root@VM-0-17-centos conf]# docker build -t Imagename: Versionsnummer.

zB:注意最后有個小點. Dieser點指的是Dockerfile文件所在的目錄. Wenn sie sich im aktuellen Verzeichnis befindet, ist sie es auch. In anderen Verzeichnissen müssen Sie den vollständigen Verzeichnispfad eingeben.

3. Erstellen Sie den Container und mounten Sie die Konfigurationsdatei

[root@VM-0-17-centos conf]# docker run -d -p 9999:9999 -v /usr/local/release/project/appsettings.json:/src/appsettings.json --name projectapi project:1.0

SQLserver-Bereitstellung

Voraussetzungen:

  • Der Server benötigt mehr als 2 GB Arbeitsspeicher. Wenn es nicht ausreicht, startet es möglicherweise nicht richtig

1. Holen Sie sich das SQLServer-Image

[root@VM-24-9-centos ~]# docker pull mcr.microsoft.com/mssql/server:2019-latest

2. Erstellen Sie Datendateien für die Datenmontage

[root@VM-24-9-centos ~]# mkdir -p /data/sqlserver/data

# Ändern Sie die Verzeichnisberechtigungen. Wenn Sie die Berechtigungen nicht ändern, wird ein Fehler gemeldet [root@VM-24-9-centos ~]# chown -R 10001:0 /data/sqlserver/data/

3. Führen Sie den Container aus

[root@VM-24-9-centos sqlserverdata]# docker run -d -p 1433:1433 -e 'ACCEPT_EULA=Y' -e 'SA_PASSWORD=sa123456.?'

Notiz:

  • ACCEPT_EULA=Y bedeutet, dass Sie der Lizenzvereinbarung zustimmen, erforderlich
  • MSSQL_SA_PASSWORD ist das Passwort. Es muss ein sicheres Passwort mit mindestens 8 Zeichen sein, mit Großbuchstaben, Kleinbuchstaben, Zahlen und Sonderzeichen. Andernfalls wird Docker nach dem Starten des SQL Server-Containers einige Sekunden lang angehalten.
  • Bei Verwendung von Navcat zur Verbindung werden die Portnummer und die IP-Adresse durch Kommas statt durch Doppelpunkte getrennt.
  • Das erstellte Datenmount-Verzeichnis muss die Berechtigungen ändern

Bereitstellung von ElasticSearch-Clustern

Bereitstellen von ElasticSearch

1. Bilder abrufen und Konfigurationsdateien stapelweise generieren

# Ziehen Sie das Image [root@VM-24-9-centos ~]# docker pull elasticsearch:7.2.0

# Konfigurationsdateien und Verzeichnisse für Port in $(seq 1 6); \ generieren
Tun \
mkdir -p /data/es/node-${port}/conf
mkdir -p /data/es/node-${port}/data
mkdir -p /data/es/node-${port}/plugins
chmod 777 /data/es/node-${port}/data
berühren Sie /data/es/node-${port}/conf/es.yml
Katze << EOF >>/data/es/node-${port}/conf/es.yml
Clustername: lbj
Knotenname: Knoten${Port}
node.master: wahr
node.data: wahr
bootstrap.memory_lock: falsch
Netzwerkhost: 0.0.0.0
http.port: 920${port}
transport.tcp.port: 930${port}
Entdeckung.seed_hosts: ["xxxx:9301","xxxx:9302","xxxx:9303","xxxx:9304"]
cluster.initial_master_nodes: ["Knoten1", "Knoten2", "Knoten3", "Knoten4"]
cluster.routing.allocation.cluster_concurrent_rebalance: 32
cluster.routing.allocation.node_concurrent_recoveries: 32
cluster.routing.allocation.node_initial_primaries_recoveries: 32
http.cors.enabled: wahr
http.cors.allow-origin: "*"
Entdeckung.zen.minimum_master_nodes: 2
Ende der Laufzeit
Erledigt;

2. Container in Batches erstellen und Clusterinformationen anzeigen

# Batch-Erstellung von Containern für den Port in $(seq 1 4); \
Tun \
docker run -e ES_JAVA_OPTS="-Xms512m -Xmx512m" \
-d -p 920${Port}:920${Port} -p 930${Port}:930${Port} \
-e ES_MIN_MEM=128m \
-e ES_MAX_MEM=2048m \
-v /data/es/node-${port}/conf/es.yml:/usr/share/elasticsearch/config/elasticsearch.yml \
-v /data/es/node-${port}/data/:/usr/share/elasticsearch/data/ \
-v /data/es/node-${port}/plugins/:/usr/share/elasticsearch/plugins \
--name ES-${port} \
elastischesuche:7.2.0
Erledigt

# Informationen zu einzelnen Knoten anzeigen [root@VM-24-9-centos ~]# curl http://xxxx:9201/
{
  "Name": "Knoten1",
  "Clustername": "lbj",
  "cluster_uuid": "Vjb7cu6fQ6y2-ZWk0YGIiQ",
  "version" : {
    "Nummer" : "7.2.0",
    "build_flavor" : "Standard",
    "Build_Type": "Docker",
    "build_hash" : "508c38a",
    "build_date" : "2019-06-20T15:54:18.811730Z",
    "build_snapshot" : falsch,
    "lucene_version" : "8.0.0",
    "minimum_wire_compatibility_version" : "6.8.0",
    "Minimum_Index_Compatibility_Version": "6.0.0-beta1"
  },
  "Tagline": "Sie wissen schon, für die Suche"
}

# Clusterinformationen anzeigen [root@VM-24-9-centos ~]# curl http://xxxx:9201/_cat/nodes?pretty
172.17.0.2 37 97 0 0,00 0,00 0,08 mdi * Knoten1
172.17.0.4 35 97 0 0,00 0,00 0,08 mdi - Knoten3
172.17.0.3 39 97 1 0,00 0,00 0,08 mdi - Knoten2
172.17.0.6 34 97 1 0,00 0,00 0,08 mdi - Knoten4

ElasticSearch-Head bereitstellen

ElasticSearch-Head ist eine Verwaltungsoberfläche, in der Sie ElasticSearch-bezogene Informationen anzeigen können

1. Ziehen Sie das ElasticSearch-Head-Bild

[root@VM-24-9-centos ~]# docker pull mobz/elasticsearch-head:5

2. Führen Sie den ElasticSearch-Head-Container aus

# Container erstellen [root@VM-24-9-centos ~]# docker run -d --name es_admin -p 9100:9100 mobz/elasticsearch-head:5

# Greifen Sie vom PC aus auf IP:9100 zu, um Clusterinformationen mithilfe von Verwaltungstools anzuzeigen

Damit ist dieser Artikel über die Bereitstellung von Mysql, .Net6, Sqlserver und anderen Containern mit Docker abgeschlossen. Ich hoffe, dass es für jedermanns Studium hilfreich sein wird, und ich hoffe auch, dass jeder 123WORDPRESS.COM unterstützen wird.

Das könnte Sie auch interessieren:
  • Installieren Sie die SQL Server-Datenbank über Docker auf einem Linux-System
  • Detaillierte Schritte zum Bereitstellen von Microsoft SQL Server mit Docker
  • Implementierung der Docker-Bereitstellung des SQL Server 2019 Always On-Clusters
  • Implementierung der Ausführung von SQL Server mit Docker
  • So führen Sie Microsoft SQL Server 2017 mit Docker aus
  • Bereitstellen von MSSQL in einem Docker-Container

<<:  Die häufigste Deklarationszusammenführung in TS (Schnittstellenzusammenführung)

>>:  CSS verwendet Position + Rand, um die Methode der horizontalen und vertikalen Zentrierung fester Boxen zu erreichen

Artikel empfehlen

Ein einfaches Beispiel für eine gemeinsame MySQL-Tabellenabfrage

MySql verwendet verknüpfte Tabellenabfragen, die ...

Beispiel für eine einfache Operation einer MySQL-Abfrageanweisung

Dieser Artikel veranschaulicht anhand von Beispie...

HTML+CSS-Beispielcode für zusammengeführte Tabellenränder

Wenn wir Tabellen- und td-Tags Rahmen hinzufügen,...

Beispiel für das Einrichten einer Whitelist in Nginx mithilfe des Geomoduls

Ursprüngliche Konfiguration: http { ...... Verbin...

Der einfachste Weg, das MySQL-Root-Passwort zurückzusetzen

Meine MySQL-Version ist MySQL V5.7.9, bitte verwe...

So konfigurieren Sie den Whitelist-Zugriff in MySQL

Schritte zum Konfigurieren des Whitelist-Zugriffs...

Fügen Sie Linux eine Startmethode hinzu (Dienst/Skript)

Konfigurationsdatei, die beim Systemstart geladen...

Detaillierte Erklärung asynchroner Iteratoren in nodejs

Inhaltsverzeichnis Vorwort Was sind asynchrone It...

Verwenden Sie reines CSS, um einen Scroll-Schatteneffekt zu erzielen

Um es gleich auf den Punkt zu bringen: Bei manche...

Detaillierte Erläuterung des MySQL MVCC-Mechanismusprinzips

Inhaltsverzeichnis Was ist MVCC Mysql-Sperre und ...

Implementierung einer Login-Seite basierend auf layui

In diesem Artikelbeispiel wird der spezifische Co...