Ich folge diesem Tutorial zur Serviceerkennung Ссылка
Kurz gesagt:
Ich habe einen etcd Host erstellt, der unter x.y.z.d: 4001 läuft
%Vor%Erstellt einen Backend-Server, der einen Container unter backend_serverip: 8000 und docker-register
ausführt %Vor%Erstellte einen anderen Backend-Server, der einen Container unter backend2_serverip: 8000 und docker-register
ausführt %Vor%Erstellt einen Client, der docker-discover und ein ubuntu-Image ausführt
%Vor%Wenn ich mir die Logs ansehe, um zu sehen, ob Container registriert werden, sehe ich den folgenden Fehler
%Vor%Ich habe versucht, dieses Verzeichnis manuell zu erstellen, ich habe auch versucht, die Container mit privilegierter Option auszuführen, aber kein Glück
Der Fehler, den Sie bekommen, stammt von einem Fehler im Code . Das Problem ist, dass /backends
nicht in Ihrem etcd-Verzeichnis existiert. Sie können es selbst manuell erstellen, indem Sie Folgendes ausführen:
Sobald das Verzeichnis in etcd existiert, erhalten Sie den Fehler nicht mehr.
Ich habe eine Pull Anfrage erstellt, die den Fehler behebt, und wenn Sie den festen Code verwenden möchten, Sie können Ihr eigenes Bild erstellen:
%Vor%Dann würde Ihr Befehl für das Andockregister wie folgt aussehen:
%Vor% Hinweis: Ich habe jwilder/
einfach aus dem Image-Namen im Befehl entfernt, sodass Ihre lokale Version verwendet wird.
Tags und Links docker registry service-discovery etcd