So erhalten Sie den Container-StartbefehlDer 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_cdh \ -p 3306:3306 \ -e MYSQL_ROOT_PASSWORD=123456 \ -v mysql-daten:/var/lib/mysql \ --restart=immer \ mysql:5.5 --character-set-server=utf8 #So erhalten Sie die Startparameter über den Containernamen [root@jenkins ~]# docker inspect mysql_cdh [ { "ID": "3aad772538b5e86705d3358362517a08d53f951aa6522e2881321135f05c8872", "Erstellt": "2019-09-25T01:43:37.720505875Z", "Pfad": "docker-entrypoint.sh", "Argumente": [ „--character-set-server=utf8“ ], ... "Name": "/mysql_cdh", "HostKonfiguration": { "Bindet": [ „mysql-daten:/var/lib/mysql“ ], ... "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": "" } ], "Konfiguration": { "Hostname": "3aad772538b5", ... "Offengelegte Ports": { "3306/tcp": {} }, ... "Umgebung": [ "MYSQL_ROOT_PASSWORD=123456", „PFAD=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/local/mysql/bin:/usr/local/mysql/scripts“, "GOSU_VERSION=1.7", "MYSQL_MAJOR=5.5", "MYSQL_VERSION=5.5.62" ], "Befehl": [ „--character-set-server=utf8“ ], 1. 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) # /var/lib/docker/containers/Container-ID [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", Containerhafen übermorgen ändern a. Senden Sie zuerst den alten Container als neues Image und starten Sie dann den neuen ContainerSie müssen Folgendes sicherstellen: Die Datenvolumenzuordnung ist vollständig konsistent (die neuen und alten Container müssen auf dem Datenvolumen konsistent sein). [root1@c7-docker ~]# docker inspect mysql_port |egrep -i 'volum|Mount' -A 2 "Volumen": { "/var/lib/mysql": {} }, -- "Volumen": { "/var/lib/mysql": {} }, Speichern Sie den Container als Image, starten Sie dann einen neuen Container und fügen Sie die Portzuordnung hinzu ################# 1. Starten Sie einen Container############### [root1@c7-docker ~]# docker run --name t1 -d -e MYSQL_ROOT_PASSWORD=123456 -v mysql-test-dir:/var/lib/mysql/ -p 3308:3306 mysql:5.5 53f2a3c53d4c6769897ee484c3d2ff4e3f82ea1e390d4950b2162c08af05d7cc [root1@c7-docker ~]# Docker ps CONTAINER ID BILD BEFEHL ERSTELLT STATUS PORTS NAMEN 53f2a3c53d4c mysql:5.5 "docker-entrypoint.s..." vor 3 Sekunden Aktiv 3 Sekunden 0.0.0.0:3308->3306/tcp t1 [root1@c7-docker ~]# mysql -uroot -p123456 -P3308 --protocol tcp Willkommen beim MariaDB-Monitor. Befehle enden mit ; oder \g. Ihre MySQL-Verbindungs-ID ist 1 Serverversion: 5.5.62 MySQL Community Server (GPL) MySQL [(keine)]> Datenbanken anzeigen; +--------------------+ | Datenbank | +--------------------+ | Informationsschema | |mysql | | Leistungsschema | +--------------------+ 3 Zeilen im Satz (0,00 Sek.) MySQL [(keine)]> Datenbanktest erstellen; Abfrage OK, 1 Zeile betroffen (0,00 Sek.) MySQL [(keine)]> Test verwenden; Datenbank geändert MySQL [Test]> Tabelle t1 erstellen (ID int); Abfrage OK, 0 Zeilen betroffen (0,00 Sek.) MySQL [test]> in t1 Werte einfügen(1),(2),(3); Abfrage OK, 3 Zeilen betroffen (0,00 Sek.) Datensätze: 3 Duplikate: 0 Warnungen: 0 MySQL [Test]> wähle * aus t1; +------+ |Ich würde| +------+ | 1 | | 2 | | 3 | +------+ 3 Zeilen im Satz (0,00 Sek.) ################ 2. Aktuelle Containerumgebung übermitteln – als neues Image speichern############### [root1@c7-docker ~]# docker commit -m mysql_test_chag-port_img t1 mysql_port sha256:9f90be3c200c6a8b535478375c4caf86d589d231afae1293d28026f9248f8ae3 [root1@c7-docker ~]# Docker-Bilder REPOSITORY TAG BILD ID ERSTELLT GRÖSSE mysql_port latest 9f90be3c200c vor 3 Sekunden 205 MB mysql 5.5 d404d78aa797 vor 18 Monaten 205 MB ################ 3. Stoppen Sie den alten Container und starten Sie den neuen Container################ [root1@c7-docker ~]# Docker stoppt t1 t1 [root1@c7-docker ~]# docker run --name t2 -d -v mysql-test-dir:/var/lib/mysql/ -p 3309:3306 mysql_port fd7cefe55db8bb2687ab044ff1473f0c935ac5ce867df81b3b13f570e9026868 [root1@c7-docker ~]# Docker ps CONTAINER ID BILD BEFEHL ERSTELLT STATUS PORTS NAMEN fd7cefe55db8 mysql_port "docker-entrypoint.s..." vor 3 Sekunden Aktiv seit 2 Sekunden 0.0.0.0:3309->3306/tcp t2 [root1@c7-docker ~]# mysql -uroot -p123456 -P3309 --protocol tcp Willkommen beim MariaDB-Monitor. Befehle enden mit ; oder \g. Ihre MySQL-Verbindungs-ID ist 2 Serverversion: 5.5.62 MySQL Community Server (GPL) MySQL [(keine)]> Datenbanken anzeigen; MySQL [(keine)]> Test verwenden; Einlesen von Tabelleninformationen zur Vervollständigung von Tabellen- und Spaltennamen Sie können diese Funktion deaktivieren, um einen schnelleren Start mit -A zu erhalten Datenbank geändert MySQL [Test]> wähle * aus t1; +------+ |Ich würde| +------+ | 1 | | 2 | | 3 | +------+ 3 Zeilen im Satz (0,00 Sek.) b. Ändern Sie die Containerkonfigurationsdatei: hostconfig.jsonSie müssen zuerst den Docker-Dienst stoppen, sonst wird er nicht wirksam Suchen Sie die Konfigurationsdatei hostconfig.json über die Container-Layer-Datei und ändern Sie den vom Container zugeordneten Port [root@docker a9c9f31cd...ff24c8]# pwd /var/lib/docker/containers/d93185e3a0....2e544ccfa [root@docker a9c9f31cd...ff24c8]# cat hostconfig.json {"Bindet":["/dockersuperset:/home/superset"],"ContainerIDFile":"", "LogConfig":{"Typ":"json-Datei","Konfiguration":{}},"Netzwerkmodus":"Standard", "PortBindings":{"8088/tcp":[{"HostIp":"","HostPort":"8099"}]}...... 2. 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" }, a, Containerebene, Bildebene: ZuordnungI, Untercontainer: Kopiere die Bilddatei II, Untercontainer: Neue Dateien hinzufügen III. Untercontainer: Aus dem Image kopierte Dateien ändern b. Ändern Sie in der Image-Ebene (Dateispeicherverzeichnis) die Konfigurationsdatei# Rufen Sie das Dateispeicherverzeichnis des Spiegelcontainers auf und ändern Sie die Konfigurationsdatei [root@master d37ff828e6308...0c0599b]# ls diff/run/ nginx.pid [root@master d37ff828e6308...0c0599b]# ls diff /var/cache/nginx/ client_temp fastcgi_temp proxy_temp scgi_temp uwsgi_temp [root@master d37ff828e6308...0c0599b]# 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 d37ff828e6308...0c0599b]# 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 d37ff828e6308...0c0599b]# head merged/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 d37ff828e6308...0c0599b]# 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 d37ff828e6308...0c0599b]# docker exec -it nginx2 bash root@a9c9f31cdccf:/# Kopf /etc/nginx/nginx.conf -n 3 Benutzer nginx Arbeitsprozesse 1 3. Ändern Sie den Standardspeicherpfada, erstellen Sie das Verzeichnis /var/lib/docker neu#Daten auf einem neuen Speicherpfad sichernService 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 Konfigurationvi /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 Das Obige ist meine persönliche Erfahrung. Ich hoffe, es kann Ihnen als Referenz dienen. Ich hoffe auch, dass Sie 123WORDPRESS.COM unterstützen werden. Sollten dennoch Fehler oder unvollständige Überlegungen vorliegen, freue ich mich über eine Korrektur. Das könnte Sie auch interessieren:
|
<<: Beispielcode zur Implementierung eines 3D-Text-Hover-Effekts mit CSS3
>>: Tutorial zur Verwendung von Webpack in JavaScript
Abfrage des aktuellen Datums AKTUELLES DATUM AUSW...
In Dockerfile können run, cmd und entrypoint zum ...
mysql.lap Allgemeine Parameterbeschreibung –auto-...
Im System werden viele Befehle verwendet. Wie kön...
1. Docker zieht das Image Docker Pull MySQL (stan...
1. Felder hinzufügen: Tabelle Tabellennamen änder...
Lesetipp: MySQL 8.0.19 unterstützt Kontosperrfunk...
Inhaltsverzeichnis Datenbroker und Events Überprü...
In letzter Zeit wurde viel über H1 diskutiert (auf...
Inhaltsverzeichnis 1. Konfigurieren Sie den Linux...
Jede dieser 16 Sites ist eine sorgfältige Lektüre ...
Inhaltsverzeichnis Status Quo Lösung Weitere Lösu...
Der Befehl „show processlist“ ist sehr nützlich. ...
Vim ist ein leistungsstarker Vollbild-Texteditor ...
Code kopieren Der Code lautet wie folgt: <!DOC...