Docker-Machine ist ein offiziell von Docker bereitgestelltes Docker-Verwaltungstool. Dies lässt sich ganz einfach mit Docker-Machine erledigen: Installieren und Ausführen von Docker auf Windows- und MAC-Plattformen Erstellen und Verwalten mehrerer Docker-Hosts Aufbau eines Schwarmclusters Die Umgebung ist Virtualbox, installiert unter Win, CentOS7 installiert von Virtualbox, Netzwerkmodus NAT+Hostonly ip:192.168.56.102 (nur Host) 1. Installieren Sie Docker-Machine: curl -L https://github.com/docker/machine/releases/download/v0.13.0/docker-machine-`uname -s`-`uname -m` >/tmp/docker-machine && chmod +x /tmp/docker-machine && sudo cp /tmp/docker-machine /usr/local/bin/docker-machine 2. Überprüfen Sie die Docker-Maschinenversion: # Docker-Maschinenversion [root@docker ~]# Docker-Maschinenversion Docker-Machine-Version 0.13.0, Build 9ba6da9 3. Erstellen Sie eine Maschine in der CentOS7-Umgebung: [root@localhost ~]# docker-machine erstellen -d virtualbox default CA erstellen: /root/.docker/machine/certs/ca.pem Client-Zertifikat erstellen: /root/.docker/machine/certs/cert.pem Es werden Prüfungen vor der Erstellung ausgeführt … Fehler bei der Prüfung vor der Erstellung: „VBoxManage nicht gefunden. Stellen Sie sicher, dass VirtualBox installiert ist und VBoxManage im Pfad liegt.“ Es wurde jedoch ein Fehler gemeldet. Es wurde angenommen, dass die von Virtualbox installierte CentOS7-Umgebung den Virtualbox-Treiber unterstützt. Es wurde jedoch festgestellt, dass die Umgebungsinstallation den Virtualbox-Treiber unterstützt. Um den Virtualbox-Treiber zu verwenden, müssen Sie Virtualbox installieren. Die Lösung für Ubuntu lautet: Daher verwenden wir den generischen Treiber. Weitere Einzelheiten finden Sie auf der offiziellen Website: https://docs.docker.com/machine/drivers/generic/ [root@localhost ~]# docker-machine erstellen -d generic --generic-ip-address=192.168.56.102 --generic-ssh-key ~/.ssh/id_rsa --
Trotzdem tritt ein Fehler auf. Dies liegt daran, dass eine SSH-Authentifizierung auch erforderlich ist, wenn Docker-Machine eine Maschine für den lokalen Computer erstellt: [root@localhost ~]# ssh-keygen [root@localhost ~]# ssh-Kopie-ID [email protected] Senden Sie das Kennwort an sich selbst und fahren Sie dann mit der Erstellung der Maschine fort: [root@localhost ~]# docker-machine erstellen -d generic --generic-ip-address=192.168.56.102 --generic-ssh-key ~/.ssh/id_rsa --generic-ssh-user=root vm Es werden Prüfungen vor der Erstellung ausgeführt … Maschine erstellen... (vm) SSH-Schlüssel importieren … Warten, bis die Maschine läuft. Dies kann einige Minuten dauern … Betriebssystem der erstellten Instanz wird erkannt … Warte auf die Verfügbarkeit von SSH ... Den Provisioner erkennen … Bereitstellung mit CentOS ... Zertifikate werden in das lokale Computerverzeichnis kopiert … Zertifikate werden auf den Remotecomputer kopiert ... Festlegen der Docker-Konfiguration auf dem Remote-Daemon ... Verbindung zu Docker wird geprüft … Docker ist einsatzbereit! Um zu sehen, wie Sie Ihren Docker-Client mit der Docker-Engine verbinden, die auf dieser virtuellen Maschine läuft, führen Sie aus: docker-machine env vm So, endlich ist die Maschine erfolgreich erstellt worden Schauen Sie sich die Docker-Maschine an: [root@localhost ~]# Docker-Maschine ls NAME AKTIV TREIBER STATUS URL SWARM DOCKER FEHLER vm-generic Wird ausgeführt tcp://192.168.56.102:2376 v17.09.0-ce Zeigen Sie die Umgebungsvariablen der VM an: [root@localhost ~]# Docker-Maschine Umgebung vm exportiere DOCKER_TLS_VERIFY="1" exportiere DOCKER_HOST="tcp://192.168.56.102:2376" exportiere DOCKER_CERT_PATH="/root/.docker/machine/machines/vm" exportiere DOCKER_MACHINE_NAME="vm" # Führen Sie diesen Befehl aus, um Ihre Shell zu konfigurieren: # eval $(Docker-Maschine, Umgebung, VM) Umgebungsvariablen laden: [root@localhost ~]# eval $(Docker-Maschine Umgebung VM) Verwenden Sie SSH, um sich beim Computer anzumelden: [root@localhost ~]# docker-machine ssh --hilfe Verwendung: Docker-Machine SSH [Argument …] Melden Sie sich bei einem Computer mit SSH an oder führen Sie einen Befehl darauf aus. Beschreibung: Argumente sind [Maschinenname] [Befehl] [root@localhost ~]# Docker-Maschine SSH VM Letzte Anmeldung: Sa 4. Nov 2017 17:55:53 von 192.168.56.102 [root@vm ~] Erstellen Sie nun einen Container in der lokalen Umgebung und starten Sie ihn: [root@localhost ~]# docker run -d --name=nginx nginx [root@localhost ~]# docker ps -a CONTAINER ID BILD BEFEHL ERSTELLT STATUS PORTS NAMEN 6e62975fab90 nginx „nginx -g 'daemon ...“ Vor etwa einer Minute 59 Sekunden aktiv 80/tcp nginx Stellen Sie dann per SSH eine Remoteverbindung zur Docker-Maschine her: [root@localhost ~]# Docker-Maschine SSH VM Letzte Anmeldung: Sa 4. Nov 2017 18:13:27 von 192.168.56.102 [root@vm ~]# docker ps -a CONTAINER ID BILD BEFEHL ERSTELLT STATUS PORTS NAMEN 6e62975fab90 nginx „nginx -g 'daemon ...“ Vor etwa einer Minute Up Vor etwa einer Minute 80/tcp nginx Sie können sehen, dass die Container-IDs im Docker-Host und im Docker-Machine-Host identisch sind Verwenden Sie Docker-Machine, um Docker zu installieren und Container zu erstellen Mit dem obigen Schritt erstellen Sie lokal eine Maschine für sich selbst. Erstellen Sie nun eine Docker-Maschine für den Remote-Docker-Host: 1. Authentifizieren Sie zunächst die SSH-Verbindung zwischen 192.168.101.14 und dem Host 192.168.56.102: [root@docker ~]# ssh-keygen [root@docker ~]# ssh-Kopie-ID [email protected] 2. Erstellen Sie eine Maschine: [root@docker ~]# docker-machine erstellen -d generic --generic-ip-address=192.168.56.102 --generic-ssh-key ~/.ssh/id_rsa --generic-ssh-user=root default CA erstellen: /root/.docker/machine/certs/ca.pem Client-Zertifikat erstellen: /root/.docker/machine/certs/cert.pem Es werden Prüfungen vor der Erstellung ausgeführt … Maschine erstellen... (Standard) SSH-Schlüssel wird importiert … Warten, bis die Maschine läuft. Dies kann einige Minuten dauern … Betriebssystem der erstellten Instanz wird erkannt … Warte auf die Verfügbarkeit von SSH ... Den Provisioner erkennen … Bereitstellung mit CentOS ... Zertifikate werden in das lokale Computerverzeichnis kopiert … Zertifikate werden auf den Remotecomputer kopiert ... Festlegen der Docker-Konfiguration auf dem Remote-Daemon ... Verbindung zu Docker wird geprüft … Docker ist einsatzbereit! Um zu sehen, wie Sie Ihren Docker-Client mit der Docker-Engine verbinden, die auf dieser virtuellen Maschine läuft, führen Sie aus: docker-machine env default Führen Sie die Umgebungsvariablen aus und rufen Sie die Computerumgebung auf: [root@docker ~]# Docker-Maschine Umgebung Standard [root@docker ~]# eval $(docker-machine env Standard) 3. Zeigen Sie die erstellte Maschine an: [root@docker ~]# Docker-Maschine ls NAME AKTIV TREIBER STATUS URL SWARM DOCKER FEHLER Standard - generisches Ausführen von tcp://192.168.56.102:2376 v17.09.0-ce Sie können die für den Remote-Host 192.168.56.102 erstellte Maschine in der Umgebung 192.168.101.14 sehen 4. Erstellen Sie einen Container: [root@docker ~]# docker run -d --name=nginx nginx (kein nginx-Image lokal) b1f08986f6d5dbb1ede699e915bde734bab278fbe70f93af06ec2267fae2fef3 [root@docker ~]# docker ps -a CONTAINER ID BILD BEFEHL ERSTELLT STATUS PORTS NAMEN b1f08986f6d5 nginx „nginx -g 'daemon ...“ vor 4 Sekunden Up 3 Sekunden 80/tcp nginx 5. Per SSH mit der Maschine verbinden: [root@docker ~]# Docker-Maschine SSH-Standard Letzte Anmeldung: Sa 4. Nov 2017 18:51:49 von 192.168.56.1 [root@Standard ~]# docker ps -a CONTAINER ID BILD BEFEHL ERSTELLT STATUS PORTS NAMEN b1f08986f6d5 nginx „nginx -g 'daemon ...“ vor 23 Sekunden Up 22 Sekunden 80/tcp nginx Überprüfen Sie nun, ob der Container auf dem Remote-Host erstellt wurde: [root@localhost ~]# docker ps -a CA-Zertifikat "/root/.docker/machine/machines/default/ca.pem" konnte nicht gelesen werden: öffne /root/.docker/machine/machines/default/ca.pem: keine solche Datei oder kein solches Verzeichnis Fehlerursache: Da ich mir gerade eine Maschine unter 192.168.56.102 eingerichtet habe, habe ich die Umgebungsvariablen der vorherigen Maschine beibehalten. Obwohl ich sie jetzt gelöscht habe, habe ich die Umgebungsvariablen festgelegt. Stornieren Sie die Umgebungsvariablen, die ich gerade festgelegt habe: [root@localhost ~]# DOCKER_TLS_VERIFY aufheben [root@localhost ~]# DOCKER_CERT_PATH aufheben [root@localhost ~]# DOCKER_MACHINE_NAME aufheben [root@localhost ~]# DOCKER_HOST aufheben Dann überprüfen Sie noch einmal: [root@localhost ~]# docker ps -a CONTAINER ID BILD BEFEHL ERSTELLT STATUS PORTS NAMEN b1f08986f6d5 nginx „nginx -g 'daemon ...“ vor 8 Minuten Up 8 Minuten 80/tcp nginx Es kann festgestellt werden, dass der Container erfolgreich für den Remote-Host erstellt wurde Jetzt existiert das Image centos_nginx:v4 auf 192.168.101.14, aber der Remote-Host 192.168.56.102 hat dieses Image nicht. Erstellen Sie jetzt einen Container, um zu sehen, ob der Remote-Host erfolgreich erstellt werden kann? [root@docker ~]# docker pull registry.cn-hangzhou.aliyuncs.com/wadeson/jsonhc:v4 [root@docker ~]# Docker-Bilder REPOSITORY TAG BILD ID ERSTELLT GRÖSSE nginx latest b72d63324dbb vor 13 Stunden 108 MB registry.cn-hangzhou.aliyuncs.com/wadeson/jsonhc v4 6c5128aaff05 vor 2 Tagen 464 MB Überprüfen Sie dann auf dem Remote-Host: [root@localhost ~]# Docker-Bilder REPOSITORY TAG BILD ID ERSTELLT GRÖSSE nginx latest b72d63324dbb vor 13 Stunden 108 MB registry.cn-hangzhou.aliyuncs.com/wadeson/jsonhc v4 6c5128aaff05 vor 2 Tagen 464 MB Sie können sehen, dass die Bilder der beiden Hosts synchronisiert sind und die Container ebenfalls synchronisiert sind. Docker unter VM kann Container für Docker unter VirtualBox erstellen und kann über Docker-Machine auch Container für andere Umgebungen wie die Cloud erstellen. Zuvor verschwanden die Bilder von 192.168.101.14 aufgrund der Festlegung der Maschinenumgebungsvariable: DOCKER_TLS_VERIFY aufheben DOCKER_CERT_PATH aufheben DOCKER_MACHINE_NAME aufheben DOCKER_HOST aufheben Führen Sie das Obige aus, um die Umgebungsvariable des Computers abzubrechen und zur ursprünglichen Umgebung zurückzukehren: [root@docker ~]# Docker-Bilder REPOSITORY TAG BILD ID ERSTELLT GRÖSSE centos_init v1 383ff3502443 vor 26 Stunden 448 MB centos_nginx v8 6f792dc07c35 vor 2 Tagen 464 MB centos_nginx v7 9e875385d6be vor 2 Tagen 464 MB centos_nginx v6 959fdf4d4288 vor 2 Tagen 464 MB centos_nginx v5 5c1131306686 vor 2 Tagen 464 MB registry.cn-hangzhou.aliyuncs.com/wadeson/jsonhc v4 6c5128aaff05 vor 2 Tagen 464 MB 192.168.101.14:5000/centos_nginx v4 6c5128aaff05 vor 2 Tagen 464 MB centos_nginx v4 6c5128aaff05 vor 2 Tagen 464 MB centos_nginx v3 0e49a2c0562f vor 2 Tagen 464 MB centos_nginx v2 2031faf8894a vor 2 Tagen 464 MB centos_nginx v1 78d18f16e757 vor 3 Tagen 464 MB Registrierung aktuell 2ba7189700c8 vor 9 Tagen 33,3 MB Ubuntu aktuell 747cb2d60bbe vor 3 Wochen 122 MB centos latest 196e0ce0c9fb vor 7 Wochen 197MB Wenn Sie zur Maschinenumgebung zurückkehren müssen, führen Sie die Maschinenumgebungsvariable weiterhin aus. Diese Methode isoliert lokale und Remote-Images und -Container gut. Dies ist das Ende dieses Artikels über die detaillierte Verwendung von Docker-Maschinen in Docker. Weitere Informationen zur Verwendung von Docker-Maschinen finden Sie in früheren Artikeln auf 123WORDPRESS.COM oder in den folgenden verwandten Artikeln. Ich hoffe, dass jeder 123WORDPRESS.COM in Zukunft unterstützen wird! Das könnte Sie auch interessieren:
|
<<: Beispielcode für ein Mysql-SQL-Überwachungsskript für langsame Abfragen
>>: Verständnis und Anwendung des Destrukturierungsoperators von JavaScript ES6
Der Dokumentmodus verfügt über die folgenden zwei ...
1. Medienabfragemethode /*iPhone X-Anpassung*/ @m...
In diesem Artikel wird der spezifische Code für J...
Nach der Installation der MySQL-Datenbank mit der...
Dieser Artikel installiert die Google-Eingabemeth...
In diesem Artikel erfahren Sie, wie Sie mithilfe ...
Kapseln Sie el-dialog als Komponente ein Wenn wir...
Heute wollte ich den MySQL-Port ändern, habe jedo...
Rand: automatisch; + Position: absolut; oben, unt...
Die MySQL-Fremdschlüsseleinschränkung (FOREIGN KE...
Konzept MMM (Master-Master-Replikationsmanager fü...
Vorbereiten: Definieren Sie eine Lehrertabelle un...
Inhaltsverzeichnis 1. Problematische SQL-Anweisun...
MySQL-Dienst 8.0.14-Installation (allgemein), zu ...
In diesem Artikelbeispiel wird der spezifische Co...