Ich erstelle ein Docker-Swarm-Projekt lokal.
Im Moment habe ich Knoten von Docker zum Simulieren wie diese YML unten, jeder hat node01
node02
.
dann möchte ich jetzt die Einschränkung verwenden
deploy:
replicas: 1
placement:
constraints: [node.label.type == node01] #it occurs error though ,,,,
Ich bin neugierig, was der „node01“ ist? Weder die Container-ID noch der Hostname.
Und ich möchte für den Produktionsserver möglichst gemeinsame Einstellungen verwenden.
Ich denke, ich installiere auf dem Produktionsserver Docker für jeden Server und erstelle ein Netzwerk.
Welche Eigenschaft soll für den Namen verwendet werden?
dies sind Knoten in der Entwicklung
version: "3"
services:
registry:
container_name: registry
image: registry:2.6
ports:
- 5000:5000
volumes:
- "./registry-data:/var/lib/registry"
manager:
container_name: man
image: docker:18.05.0-ce-dind
privileged: true
ports:
- 8009:8009 #phpmyadmin
- 8000:8000 #django
- 7000:80 # testecho
- 8082:8082
- 9009:9009 #visualizer
depends_on:
- registry
expose:
- 3375
command: "--insecure-registry registry:5000"
volumes:
- "./stack:/stack"
node01:
container_name: node01
image: docker:18.05.0-ce-dind
privileged: true
tty: true
depends_on:
- manager
- registry
expose:
- 7946
- 7946/udp
- 4789/udp
command: "--insecure-registry registry:5000"
node02:
container_name: node02
image: docker:18.05.0-ce-dind
privileged: true
tty: true
depends_on:
- manager
- registry
expose:
- 7946
- 7946/udp
- 4789/udp
command: "--insecure-registry registry:5000"
docker node ls
aunlpbglv7zds5rxsmz9p3nvz 7ff3ff1fad0f Ready Active 18.05.0-ce
b46xctenvco15ps51477q8pjt 68e0dafdd817 Ready Active 18.05.0-ce
vr70iclc0xorxvljhg62s7onw * a5c27fe8bd38 Ready Active Leader 18.05.0-ce
dann beschriften Sie es so.
docker node update --label-add name=node01 7ff3ff1fad0f
docker node update --label-add name=node02 68e0dafdd817
Ist jedoch nur verfügbar, wenn ich so etwas wie die Angabe des Knotens 7ff3ff1fad0f
verwenden kann. Es ist sehr nützlich und wiederholbar.Node01
Antwort1
constraints: [node.label.type == node01]
type=node01
Dies erfordert, dass Sie auf einem Ihrer Knoten eine Knotenbezeichnung von konfiguriert haben docker node update --label-add ...
. Um einen Knoten-Hostnamen anzugeben, verwenden Sie:
constraints: [node.hostname == node01]
Die vollständige Liste der Einschränkungen finden Siehier dokumentiert. Sie können Ihre Knotenliste auch mit docker node ls
und überprüfen docker node inspect ...
.