Docker-Dateispeicherpfad, Befehlsvorgang zum Starten des Containers abrufen

Docker-Dateispeicherpfad, Befehlsvorgang zum Starten des Containers abrufen

Der Container wurde bereits erstellt. So erfahren Sie seine Startparameter (wo die Daten gemountet sind)

#Angenommen, ein Container wird mit dem folgenden Befehl gestartet: docker run -d --name mysql\
-p 3306:3306\
-e MYSQL_ROOT_PASSWORD=123456\
--restart=immer\
mysql:5.5 --character-set-server=utf8

#So erhalten Sie die Startparameter über den Containernamen [root@jenkins ~]# docker inspect mysql_cdh
[
  {
    "ID": "fbc3fba81b57bc5b5871746098b5f1f7ef0ed7716a786584a5effbb88ba156e6",
    "Erstellt": "2019-09-25T01:43:37.720505875Z",
    "Pfad": "docker-entrypoint.sh",
    "Argumente": [
      „--character-set-server=utf8“
    ],

 "HostKonfiguration": {
      "Bindet": [
        „mysql-daten:/var/lib/mysql“
      ],
      "ContainerIDFile": "",
      "LogConfig": {
        "Typ": "json-Datei",
        "Konfiguration": {}
      },
      "Netzwerkmodus": "Standard",
      "PortBindings": {
        "3306/tcp": [{ "HostIp": "", "HostPort": "3306"}
        ]
      },
      "Neustartrichtlinie": {
        "Name": "immer",
        "MaximumRetryCount": 0
      },
  
"Reittiere": [
      {
        "Typ": "Volumen",
        "Name": "mysql-daten",
        "Quelle": "/var/lib/docker/volumes/mysql-data/_data",
        "Ziel": "/var/lib/mysql",
        "Treiber": "lokal",
        "Modus": "z",
        "RW": wahr,
        "Ausbreitung": ""
      }
    ],

1. Bildebene: Dateispeicherpfad

[root@master ~]# Docker-Image inspizieren nginx | ​​​​tail -n 22
    "GraphTreiber": {
      "Daten": {
        "LowerDir": "/var/lib/docker/overlay2/bf20cf788cc053f00ff1467525d50e19bd1cf07a2167f72511bdfcb28918a472/diff:/var/lib/docker/overlay2/317d80bb7ae58ed288be9ebd84aeb5b4b3a1c06f3211f5d1f32d89b629d1876e/diff",
        "MergedDir": "/var/lib/docker/overlay2/7782d0eb292fdc8bbd73bf9bae2d65468e8aba0bcd6baed55ac348618b80ae16/zusammengeführt",
        "UpperDir": "/var/lib/docker/overlay2/7782d0eb292fdc8bbd73bf9bae2d65468e8aba0bcd6baed55ac348618b80ae16/diff",
        "Arbeitsverzeichnis": "/var/lib/docker/overlay2/7782d0eb292fdc8bbd73bf9bae2d65468e8aba0bcd6baed55ac348618b80ae16/work"
      },
      "Name": "overlay2"
    },

2. Containerebene: Dateispeicherpfad

#1, Starten Sie den Container [root@master ~]# docker run -d --name nginx2 nginx
a9c9f31cdccf13c3385f3de33443325d2e14d69458e6d679e54c8cf9e5ff24c8

#2, Holen Sie sich die Container-ID
[root@master ~]# docker inspect nginx2 | grep -i id 
[root@master ~]# docker inspect nginx2 | grep -i id 
    "ID": "a9c9f31cdccf13c3385f3de33443325d2e14d69458e6d679e54c8cf9e5ff24c8",
      "Pid": 2069,
    "ExecIDs": null,
      "ContainerIDFile": "",
  
#Temporäre Containerdateien anzeigen – bei jeder Erstellung zufällig generierte Dateien (Containerebene)
[root@master ~]# docker inspect nginx2 | grep -i Pfad
    "Pfad": "nginx",
    "ResolvConfPath": "/var/lib/docker/containers/a9c9f31cdccf13c3385f3de33443325d2e14d69458e6d679e54c8cf9e5ff24c8/resolv.conf",
    "HostnamePfad": "/var/lib/docker/containers/a9c9f31cdccf13c3385f3de33443325d2e14d69458e6d679e54c8cf9e5ff24c8/hostname",
    "HostsPath": "/var/lib/docker/containers/a9c9f31cdccf13c3385f3de33443325d2e14d69458e6d679e54c8cf9e5ff24c8/hosts",
    "LogPath": "/var/lib/docker/containers/a9c9f31cdccf13c3385f3de33443325d2e14d69458e6d679e54c8cf9e5ff24c8/a9c9f31cdccf13c3385f3de33443325d2e14d69458e6d679e54c8cf9e5ff24c8-json.log",
 
#Verwenden Sie die Container-ID, um das Verzeichnis zu finden, in dem die Containerdaten gespeichert sind: /var/lib/docker/overlay2/containerid
######
#Im Vergleich zum obigen "Image-Layer: Dateispeicherpfad" können Sie sehen, dass der Container die Image-Layer-Dateien über die LowerDir-Mounting-Methode abbildet######
[root@master ~]# docker inspect nginx2 | grep -i dir
        "LowerDir": "/var/lib/docker/overlay2/d37ff828e63081be6fcfefc73891e7b455596cb921c8021fbf9571f330c0599b-init/diff:/var/lib/docker/overlay2/7782d0eb292fdc8bbd73bf9bae2d65468e8aba0bcd6baed55ac348618b80ae16/diff:/var/lib/docker/overlay2/bf20cf788cc053f00ff1467525d50e19bd1cf07a2167f72511bdfcb28918a472/diff:/var/lib/docker/overlay2/317d80bb7ae58ed288be9ebd84aeb5b4b3a1c06f3211f5d1f32d89b629d1876e/diff",
        "MergedDir": "/var/lib/docker/overlay2/d37ff828e63081be6fcfefc73891e7b455596cb921c8021fbf9571f330c0599b/zusammengeführt",
        "UpperDir": "/var/lib/docker/overlay2/d37ff828e63081be6fcfefc73891e7b455596cb921c8021fbf9571f330c0599b/diff",
        "Arbeitsverzeichnis": "/var/lib/docker/overlay2/d37ff828e63081be6fcfefc73891e7b455596cb921c8021fbf9571f330c0599b/work"

Containerhafen übermorgen ändern

Suchen Sie die Konfigurationsdatei hostconfig.json über die Container-Layer-Datei und ändern Sie den vom Container zugeordneten Port

[root@docker d93185e3a0....2e544ccfa]# pwd
/var/lib/docker/containers/d93185e3a0....2e544ccfa
[root@docker d93185e3a0....2e544ccfa]# cat hostconfig.json 
{"Bindet":["/dockersuperset:/home/superset"],"ContainerIDFile":"",
"LogConfig":{"Typ":"json-Datei","Konfiguration":{}},"Netzwerkmodus":"Standard",
"PortBindings":{"8088/tcp":[{"HostIp":"","HostPort":"8099"}]}......

3. Geben Sie das Dateispeicherverzeichnis des Spiegelcontainers ein und ändern Sie die Konfigurationsdatei

# Geben Sie das Dateispeicherverzeichnis des Spiegelcontainers ein und ändern Sie die Konfigurationsdatei [root@master ~]# cd /var/lib/docker/overlay2/d37ff828e63081be6fcfefc73891e7b455596cb921c8021fbf9571f330c0599b
[root@master d37ff828e63081be6fcfefc73891e7b455596cb921c8021fbf9571f330c0599b]# ls
Diff Link unten zusammengeführt Arbeit

[root@master d37ff828e63081be6fcfefc73891e7b455596cb921c8021fbf9571f330c0599b]# ls diff /ausführen/
nginx.pid
[root@master d37ff828e63081be6fcfefc73891e7b455596cb921c8021fbf9571f330c0599b]# ls diff /var/cache/nginx/
client_temp fastcgi_temp proxy_temp scgi_temp uwsgi_temp

[root@master d37ff828e63081be6fcfefc73891e7b455596cb921c8021fbf9571f330c0599b]# ls zusammengeführt/
bin/ dev/ etc/ lib/ media/ opt/ root/ sbin/ sys/ usr/    
boot/ .dockerenv home/ lib64/ mnt/ proc/ run/ srv/ tmp/ var/    

[root@master d37ff828e63081be6fcfefc73891e7b455596cb921c8021fbf9571f330c0599b]# ls zusammengeführt/etc/nginx/
conf.d fastcgi_params koi-utf koi-win mime.types module nginx.conf scgi_params uwsgi_params win-utf

[root@master d37ff828e63081be6fcfefc73891e7b455596cb921c8021fbf9571f330c0599b]# Kopf zusammengeführt/etc/nginx/nginx.conf 
Benutzer nginx;
Arbeiterprozesse 1;

#Ändern Sie hier die Konfigurationsdatei, entfernen Sie die Semikolons der beiden Zeilen user nginx; worker_process 1; um zu sehen, ob sich die Konfiguration im Container geändert hat [root@master d37ff828e63081be6fcfefc73891e7b455596cb921c8021fbf9571f330c0599b]# head merged/etc/nginx/nginx.conf -n 3
Benutzer nginx
Arbeitsprozesse 1

#Melden Sie sich beim Container an und zeigen Sie die geänderte Konfiguration an: Überprüfen Sie, ob sie wirksam ist [root@master d37ff828e63081be6fcfefc73891e7b455596cb921c8021fbf9571f330c0599b]# docker exec -it nginx2 bash
root@a9c9f31cdccf:/# Kopf /etc/nginx/nginx.conf -n 3
Benutzer nginx
Arbeitsprozesse 1

4. Ändern Sie den Standardspeicherpfad

a, Erstellen Sie das Verzeichnis /var/lib/docker neu. #Sichern Sie die Daten im neuen Speicherpfad. Service Docker Stop
mkdir /docker.bak
mv /var/lib/docker/* /docker.bak

#Erstellen Sie einen Softlink mkdir /home/docker-data
mv /docker.bak/* /home/docker-data/ && rmdir /docker.bak
ln -s /home/docker-data /var/lib/docker
b. Ändern Sie die Konfiguration vi /usr/lib/systemd/system/docker.service 
ExecStart=/usr/bin/dockerd --graph /neuer-Pfad/docker 

#Konfigurationsdatei neu laden systemctl daemon-reload 
#Docker neu starten 
systemctl Neustart docker.service

Zusatzwissen: Docker gibt das Datenspeicherverzeichnis an

Docker gibt das Speicherverzeichnis an (der ursprüngliche Parameter --graph ist ungültig.)

Methode 1

1. Konfigurieren Sie /etc/docker/daemon.json in der Docker-Konfigurationsdatei

Der folgende Befehl wird hinzugefügt, wenn die Datei daemon.json keinen Inhalt hat. Wenn es Inhalte gibt, brauchen Sie

Katze << EOF >>/etc/docker/daemon.json
{
  "Datenstamm": "/mnt/docker-data"
}
Ende der Laufzeit
systemctl Neustart Docker

Methode 2

2. Konfigurieren Sie die Startparameter

vim /usr/lib/systemd/system/docker.service

Fügen Sie nach EXECStart Folgendes hinzu:

ExecStart=/usr/bin/dockerd --data-root='/home/docker'
systemctl daemon-reload
systemctl Neustart Docker

Der obige Artikel über den Docker-Dateispeicherpfad und den Abruf des Container-Startbefehls ist der gesamte Inhalt, den der Herausgeber mit Ihnen teilt. Ich hoffe, er kann Ihnen als Referenz dienen. Ich hoffe auch, dass Sie 123WORDPRESS.COM unterstützen werden.

Das könnte Sie auch interessieren:
  • Jedes Mal, wenn Docker einen Container startet, werden die IP und die Hosts mit den angegebenen Operationen
  • Detaillierte Erläuterung der Startreihenfolge des Docker-Containers mithilfe eines Shell-Skripts
  • Docker ändert die Konfigurationsinformationen eines nicht gestarteten Containers
  • Dockerfile-Implementierungscode beim Starten von zwei Prozessen in einem Docker-Container
  • Lösen Sie das Problem, dass Docker-Container sofort nach dem Start beendet werden
  • Docker-Batch starten und alle Container schließen

<<:  Lösungen für das Problem der Erstellung von XHTML- und CSS-Webseiten

>>:  Analyse der MySQL-Transaktionsmerkmale und Ebenenprinzipien

Artikel empfehlen

Detaillierte Erklärung zur Verwendung der Vue-Nummernschild-Eingabekomponente

Eine einfache Nummernschild-Eingabekomponente (vu...

Detaillierte Erklärung der grundlegenden Syntax und Datentypen von JavaScript

Inhaltsverzeichnis JavaScript importieren 1. Inte...

jQuery benutzerdefinierter Lupeneffekt

In diesem Artikelbeispiel wird der spezifische Co...

Bild-Scrolling-Effekt mit CSS3 erstellt

Ergebnisse erzielenImplementierungscode html <...

Zusammenfassung der Methoden zum Einbinden von Dateiinhalten in HTML-Dateien

Im Forum fragen Internetnutzer oft: „Kann ich den...

Grafisches Tutorial zur Installation und Konfiguration von MySQL 8.0.15 winx64

In diesem Artikel wird die Installations- und Kon...

Vue verwendet OSS zum Hochladen von Bildern oder Anhängen

Verwenden Sie OSS, um Bilder oder Anhänge in ein ...

Schreiben eines Schere-Stein-Papier-Spiels in JavaScript

In diesem Artikel finden Sie den spezifischen Cod...

Gründe und Lösungen für das Versagen des React-Ereignisdrosselungseffekts

Inhaltsverzeichnis Das Problem hierbei ist: Lösun...

Schreiben Sie einen formellen Blog mit XHTML CSS

Der vollständige Name von Blog sollte Weblog sein,...

Implementierung der K8S-Bereitstellung eines Docker-Containers

Umgebung: (Docker, K8s-Cluster), fahren Sie mit d...

So ändern Sie die Server-UUID in MySQL

Quelle des Problems: Wenn der Slave-Server der ge...