Zusammenfassung der allgemeinen Docker-Befehle und Tipps

Zusammenfassung der allgemeinen Docker-Befehle und Tipps

Installationsskript

Ubuntu / CentOS

Es scheint ein Problem mit der Debian-Installation zu geben und das Problem mit der Installationsquelle muss gelöst werden.

curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh get-docker.sh --mirror Aliyun / AzureChinaCloud

Wenn Sie einen ausländischen Cloud-Server-Anbieter wie AWS oder GCP verwenden, müssen Sie --mirror nicht hinzufügen.

Nachdem Centos fertig ist, müssen Sie noch manuell sudo systemctl start docker.service ausführen, sonst werden Fehler wie „Docker nicht gestartet“ angezeigt.

Logbezogen

Grep-Zeichenfolge

Richtige Vorgehensweise: docker logs nginx 2>&1 | grep "127."

Um beispielsweise das Token eines Jupyter-Notebooks anzuzeigen: docker logs notebook 2>&1 | grep "token"

Andere unterstützte Parameter

-f: ähnlich dem Befehl tail -f

--since: Beginnt mit einem bestimmten Zeitstempel, z. B. 2013-01-02T13:23:37. Relative Zeit wird ebenfalls unterstützt, z. B.: 42m

--until: Ähnlich wie oben, aber umgekehrt.

-t, --timestamp: Zeitstempel anzeigen

--tail N (Standard: alle): Zeigt die letzten Datenzeilen an.

Einbindungstechniken <br /> Grafana und andere haben beispielsweise einige Dateien in das Docker-Image integriert. Wenn Sie das entsprechende Verzeichnis direkt mounten und das Hostverzeichnis leer ist, dann wird der Docker interne

Das Verzeichnis wird überschrieben. Wie geht man mit dieser Situation um?

Einfache und grobe Methode 1: (nur Idee)

Führen Sie es einmal aus und kopieren Sie es dann mit dem Befehl „docker cp“

Anschließend löscht man den Docker-Container, kopiert die Datei in das entsprechende Verzeichnis und mountet sie anschließend.

Eine elegantere Methode 2:

Nehmen Sie als Beispiel die Gründung von ClickHouse

# Schritt 1.1: Erstellen Sie ein Docker-Volume (Zweck: Offenlegen der Konfiguration des CH-Servers)
Docker-Volume erstellen --Treiber lokal \
--opt Typ=keine \
--opt Gerät=/home/centos/workspace/clickhouse/configs \
--opt o=binden \
ch-server-konfigurationen

# Schritt 1.2: Erstellen Sie ein Volume und mounten Sie die Datenbankdaten docker volume create --driver local \
--opt Typ=keine \
--opt Gerät=/home/centos/workspace/clickhouse/data \
--opt o=binden \
ch-server-data

# Schritt 2: Starten (Hinweis: Wenn viele Daten gespeichert sind, dauert die Initialisierung beim zweiten Start sehr lange. Verbindungsversuche vor Abschluss der Initialisierung schlagen fehl.)
sudo docker run -d --name mkt-ch-server \
-v ch-server-configs:/etc/clickhouse-server \
-v ch-server-data:/var/lib/clickhouse \
--restart immer \
-p 9000:9000 -p 8123:8123 \
--ulimit nofile=262144:262144 Yandex/Clickhouse-Server

Auf diese Weise wird die mit dem Docker-Image gelieferte Konfigurationsdatei beim ersten Mounten nicht gelöscht.

Geplante Aufgaben

Beispielsweise muss MySQL regelmäßig Datensicherungen exportieren. Dieser Vorgang wird am besten mit crond auf dem Hostcomputer durchgeführt.

0 1 * * * docker exec mysqldump xxxx

Gängige Docker-Images und ihre Installationsbefehle

MySQL

Installieren

docker run --name some-mysql --restart always\
-v /mein/eigenes/Datenverzeichnis:/var/lib/mysql\
-e MYSQL_ROOT_PASSWORD=mein-geheimes-Passwort -d mysql:tag

Daten sichern

Methode 1: Sie haben bereits einen MySQL-Docker-Container lokal

Der folgende Befehl ist für MySQL innerhalb von Docker, Sie können auch direkt den Parameter dump remote mysql angeben

docker exec some-mysql sh -c 'exec mysqldump --all-databases -uroot -p"$MYSQL_ROOT_PASSWORD"' > /Pfad zu den Daten/all-databases.sql

Methode 2: Es gibt lokal keinen MySQL-Docker-Container

# Nach Gebrauch löschen und das Passwort in der Eingabeaufforderung docker run -i --rm mysql:5.7 mysqldump --all-databases\ eingeben
-h 172.17.0.1 -uroot -p | gzip -9 > /home/centos/workspace/mysql-data/backup.sql.gz

Aus redaktionellen Gründen wird das obige > nicht korrekt angezeigt

Daten wiederherstellen

Beziehen Sie sich weiterhin auf die obige Dump-Methode, aber das Befehlszeilentool wird in MySQL geändert

Python-Proxy

Sie müssen ein bisschen krabbeln. Nutzen Sie die IP des Cloud-Servers voll aus, um als Crawler-Proxy zu fungieren. Der einfachste Weg, einen Crawler-Proxy zu erstellen, ist derzeit:

docker run --name py-proxy -d --restart immer -p 8899:8899 abhinavsingh/proxy.py

Beachten:

  1. Zum jetzigen Zeitpunkt ist das Python-Skript dieses Docker-Images noch relativ alt und unterstützt keine Basisauthentifizierung. Wenn Sie eine Basisauthentifizierung benötigen, müssen Sie die Python-Datei selbst aktualisieren und den Docker-Build neu erstellen. Github-Adresse: https://github.com/abhinavsingh/proxy.py
  2. Bei übermäßiger Verwendung kann es in der Praxis vorkommen, dass die Verbindung nicht automatisch hergestellt werden kann. Möglicherweise liegt auch ein Problem mit der Zielwebsite vor.
  3. Dieses Ding kann auch als Proxy für den Browser SwitchSharp verwendet werden, es wird jedoch empfohlen, https + Basisauthentifizierung hinzuzufügen. Informationen zu bestimmten Vorgängen finden Sie in der offiziellen Dokumentation.

Jupyter-Notizbuch

Nachdem ich es eine Weile verwendet habe, finde ich, dass das mit dem Tensorflow-Image gelieferte Notebook einfacher ist. Denn beim Mounten des Host-Verzeichnisses gibt es keine merkwürdigen Berechtigungsprobleme. Das Bash-Skript lautet wie folgt:

sudo docker run --name notebook -d --restart always \
 -p 127.0.0.1:8888:8888 \
 -v /Pfad zum Arbeitsbereich/Notebooks:/tf \
 tensorflow/tensorflow:neueste-py3-jupyter

Wenn Sie Apache Spark usw. verknüpfen müssen, lesen Sie das folgende Skript

sudo docker run --name pyspark-notebook -d \
 --net host --pid host -e TINI_SUBREAPER=true -p 8888:8888 \
 -v /Pfad zum Arbeitsbereich/Notebooks:/tf \
 tensorflow/tensorflow:neueste-py3-jupyter

Grafana

ID=$(id -u)
 
Docker-Ausführung \
 -d --restart immer \
 -p 3000:3000 \
 --name=grafana \ 
 --user $ID -v /Pfad zu den Daten/Grafischa-Daten:/var/lib/Grafischa \
 -e "GF_INSTALL_PLUGINS=grafana-clock-panel,grafana-simple-json-datasource" \
 -e "GF_SECURITY_ADMIN_PASSWORD=aaabbbccc" \
 grafana/grafana

Einige kurze Erklärungen:

  • –user $ID muss festgelegt sein, sonst tritt in Docker ein Berechtigungsproblem auf.
  • GF_INSTALL_PLUGINS: Installieren Sie einige nicht integrierte Plugins
  • GF_SECURITY_ADMIN_PASSWORD: Konto: admin / aaabbbccc

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. Vielen Dank für Ihre Unterstützung von 123WORDPRESS.COM.

Das könnte Sie auch interessieren:
  • Detaillierte Erläuterung der allgemeinen Docker-Befehle Study03
  • Zusammenfassung gängiger Docker-Befehle (empfohlen)
  • Allgemeine Befehlsvorgangsmethode von Docker
  • Zusammenfassung gängiger Docker-Befehle: Installation, Spiegelung und grundlegende Containervorgänge
  • Detaillierte Erläuterung zum Ändern der Docker-Zeitzone und allgemeiner Docker-Befehle
  • Zusammenfassung gängiger Docker-Befehle

<<:  Vue verwendet Better-Scroll, um ein Beispiel für eine horizontale Scroll-Methode zu erreichen

>>:  Mysql fragt die ausgeführten Transaktionen ab und wie auf Sperren gewartet werden soll

Artikel empfehlen

So konfigurieren Sie geplante MySQL-Aufgaben (EVENT-Ereignisse) im Detail

Inhaltsverzeichnis 1. Was ist eine Veranstaltung?...

Implementierungsmethoden gängiger CSS3-Animationen

1. Was ist CSS Animations ist ein vorgeschlagenes...

js realisiert Warenkorb-Add- und Subtraktions- sowie Preisberechnungsfunktionen

In diesem Artikel wird der spezifische Code von j...

So installieren Sie das Modul „lua-nginx-module“ in Nginx

ngx_lua_module ist ein Nginx-HTTP-Modul, das den ...

Fassen Sie einige häufige Rankingprobleme in MySQL zusammen

Vorwort: In manchen Anwendungsszenarien stoßen wi...

Datendiebstahl mit CSS in Firefox

0x00 Einführung Vor einigen Monaten habe ich eine...

JS implementiert das Baidu-Suchfeld

In diesem Artikelbeispiel wird der spezifische JS...

Detaillierte Erläuterung der Kommentare zu gespeicherten MySQL-Prozeduren

Inhaltsverzeichnis 1. Gebrauchsanweisung 2. Vorbe...

Detaillierte Diskussion über Speicher und Variablenspeicher in JS

Inhaltsverzeichnis Vorwort JS Magische Zahl Numme...

Wir treiben IE6 alleine in den Untergang

Tatsächlich fragen wir uns jeden Tag, wann IE6 wi...

So installieren Sie Git unter Linux

1. Einleitung Git ist ein kostenloses, verteiltes...

Klassifizierung der Farbeigenschaften von Webseiten

Klassifizierung der Farbeigenschaften Jede Farbe ...

Modulare CSS-Lösung

Es gibt wahrscheinlich ebenso viele modulare Lösu...