Docker-Swarm-Nutzung von Einschränkungen für Produktion und Entwicklung

Docker-Swarm-Nutzung von Einschränkungen für Produktion und Entwicklung

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 7ff3ff1fad0fverwenden kann. Es ist sehr nützlich und wiederholbar.Node01

Antwort1

constraints: [node.label.type == node01]

type=node01Dies 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 lsund überprüfen docker node inspect ....

verwandte Informationen