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
MySQL-Mehrtabellenabfrage (kartesisches Produktpr...
1. Laden Sie das Gitlab-Image herunter Docker-Pul...
HTML-Formulare werden verwendet, um verschiedene ...
Inhaltsverzeichnis Vorwort 1. Grundlegende Verwen...
Meta ist ein Hilfstag im Kopfbereich der HTML-Spra...
Vorwort Während des Entwicklungsprozesses stoßen ...
Vor kurzem traten bei der Bereitstellung der Umge...
Beim Rendern von Markdown habe ich zuvor den Vors...
Inhaltsverzeichnis 1. JSONP domänenübergreifend 2...
Inhaltsverzeichnis 1. Implementierungsprinzip des...
Dieses Problem ist mir beim Erstellen der Anmelde...
1. Herunterladen: http://www.oracle.com/technetwo...
Inhaltsverzeichnis 1. Nachfrage 2. Umsetzung 3. E...
Dieser Artikel beschreibt, wie mysql5.7.16 aus de...
Obwohl wir keine professionellen DBAs sind, könne...