Docker wird immer ausgereifter und seine Funktionen werden immer leistungsfähiger. Es ist auch sehr praktisch, Docker Stack zum Erstellen eines Serviceclusters zu verwenden. Docker selbst bietet eine Ladefunktion, die sehr praktisch ist. Ich möchte sie mit Ihnen teilen und ein einfaches Tutorial erstellen. Umfeld Ich habe für dieses Tutorial zwei virtuelle Centos7-Maschinen verwendet. Ihre IP-Adressen sind Hauptserver: 192.168.0.105 // auch ein privater Lagerserver Server 2: 192.168.0.49 Der gesamte Code in diesem Beitrag ist auf GitHub zu finden: https://github.com/lpxxn/godockerswarm Einrichten von Docker Swarm Ich verwende 192.168.0.105 als Hauptserver und starte Swarm darauf Docker-Schwarm-Init Nach der Ausführung des Befehls wird der Befehl zum Beitritt zum Schwarm gegeben Führen Sie den Befehl auf 192.168.0.49 aus, um dem Schwarm beizutreten Docker-Schwarm beitreten --Token SWMTKN-1-425vswwmb8o34uhnmo58w0k4rfzs5okjtye7mokpqps1vl9ymq-0p6pr2gua7l8a6udb67tfndoo 192.168.0.105:2377 Auf diese Weise haben wir den Schwarm aufgebaut und die beiden Hosts haben jetzt eine Beziehung. Webdienste Der Webdienst ist eine einfache Schnittstelle, die in der Sprache Go geschrieben ist und den Namen des Hosts zurückgibt: So können wir leicht überprüfen, ob eine Auslastung besteht. Paket Haupt importieren ( "fmt" "Protokoll" "net/http" "os" ) Funktion main() { http.HandleFunc("/hi", func(w http.ResponseWriter, r *http.Request) { hostName, _ := os.Hostname() fmt.Fprintf(w, "Hostname: %s", Hostname) }) log.Fatal(http.ListenAndServe(":8000", nil)) } Docker-Datei Schauen Sie sich das Dockerfile an: Ausführen bedeutet, den Code in den entsprechenden Ordner zu kopieren, den Port freizugeben und das Programm basierend auf dem Golang-Kontext auszuführen. Einfach, oder? VON golang # Den aktuellen Verzeichnisinhalt in den Container kopieren KOPIEREN ./go/src/github.com/lpxxn/godockerswarm/ ARBEITSVERZEICHNIS /go/src/github.com/lpxxn/godockerswarm/ RUN gehen bauen EXPOSE 8000 CMD ["./godockerswarm"] Schauen Sie sich den Ordner an, in dem sich die Dockerfile-Datei befindet Führen Sie den Docker-Build-Befehl in diesem Verzeichnis aus: Docker-Build. -t goweb:1.0 Sie können das neu generierte Image ausführen docker run -p 8100:8000 7a7e3 Senden Sie das Bild an ein privates Repository Ich werde hier mehr darüber sagen, wie man einen privaten Lagerserver aufbaut. Sie können zu meinem vorherigen Beitrag gehen, um es nachzulesen. Adresse: https://www.jb51.net/article/156168.htm Da die Maschinen im Cluster automatisch Bilder aus dem Warehouse abrufen und dann das Programm ausführen, müssen wir die oben generierten Bilder in unser privates Warehouse übertragen. Ich habe es selbst gebaut Mit Tag umbenennen Docker-Tag goweb:1.0 lpxxn.com:5000/goweb:1.0 Drücken Docker Push lpxxn.com:5000/goweb:1.0 Docker-Compose-Datei Erstellen Sie als Nächstes die Datei docker-compose.yml Das Bild ist das Bild, das wir oben erstellt haben. Führen Sie 5 Anwendungen aus. Docker führt die Ladung selbst aus, ordnet den Port 8111 zu, startet den Dienst bei einem Fehler automatisch neu und erstellt ein eigenes Netzwerk. Dies ist sehr nützlich, wenn mehrere Serverdienste vorhanden sind. Die spezifischen Parameter finden Sie im offiziellen Tutorial: https://docs.docker.com/compose/compose-file/ Version: "3" Leistungen: Webseite: Bild: lpxxn.com:5000/goweb:1.0 einsetzen: Replikate: 5 Ressourcen: Grenzen: CPUs: "0,1" Speicher: 50M Neustartrichtlinie: Bedingung: bei Fehler Häfen: - „8111:8000“ Netzwerke: - gowebnet Netzwerke: gowebnet: Bereitstellen der Anwendung Jetzt ist es die letzte Phase. Die Bereitstellung ist genauso einfach. Führen Sie den Bereitstellungsbefehl aus. Docker-Stack bereitstellen -c docker-compose.yml mygoweb Gestartete Dienste anzeigen Docker-Dienst PS Mygoweb Testdienstleistungen Sehen Sie sich diese zurückgegebenen Hostnamen an: Sie sind unterschiedlich. Docker übernimmt die Last für uns. Der gesamte Code in diesem Beitrag ist auf GitHub zu finden: https://github.com/lpxxn/godockerswarm Das Obige ist der vollständige Inhalt dieses Artikels. Ich hoffe, er wird für jedermanns Studium hilfreich sein. Ich hoffe auch, dass jeder 123WORDPRESS.COM unterstützen wird. Das könnte Sie auch interessieren:
|
<<: So verwenden Sie die Concat-Funktion in MySQL
>>: Lösen Sie das Problem, dass der MySQL-Verbindungsport belegt ist und Dateipfadfehler verursacht
In diesem Artikel wird der spezifische Code von J...
Hintergrund Durch das flexible Layout wird eine e...
Crontab ist ein Befehl zum Einrichten einer perio...
Vorwort Die neueste Version von MySQL 8.0 ist 8.0...
Verwendung des Plugins „Veröffentlichen über SSH“...
Nicht nur das Verhalten verschiedener Browser ist...
Das Plugin wird im Firefox-Browser installiert. D...
In diesem Artikelbeispiel wird der spezifische Co...
Hintergrund Heutzutage werden die Projekte des Un...
Umgebung: VMware VCSA 6.7 (VMware-VCSA-all-6.7.0-...
Was ist hohe Parallelität? Die standardmäßigen Li...
Problembeschreibung: Fehlermeldung: Ursache: com....
Laden Sie zunächst die Zip-Archivversion von der ...
Listen werden verwendet, um eine Reihe ähnlicher o...
Holen Sie sich das IP-Tool importiere lombok.exte...