2017-09-26 2 views
0

Ich bin neu in Docker, und ich habe ein Problem. Ich möchte Affinität gewinnen und Daten zwischen zwei Knoten in Docker Schwarm austauschen.Postgresql Affinität - Docker-Service zu Schwarm

(Beispiel ip)

Ich habe einen als Trainer: 192.168.10.1

und Arbeiter auf: 192.168.10.2

Sie sind bereits angeschlossen.

Ich schreibe habe docker-compose.yml Datei neuen Dienst mit Postgres DB zu erstellen, und Manager yml Datei wie folgt aussieht:

version: '3.1' 

services: 
    db: 
     image: postgres 
     environment: 
      POSTGRES_DB: My_DB 
      POSTGRES_USER: My_DB_User 
      POSTGRES_PASSWORD: My_DB_Password 
      PG_DATA: /var/lib/postgresql/data/pgdatai 
     deploy: 
      placement: 
       constraints: 
        - node.role == manager 
        - node.labels.type == queue 

    adminer: 
     image: adminer 
     ports: 
      - 8080:8080 

und Arbeiter:

version: '3.1' 

services: 
    db: 
     image: postgres 
     environment: 
      POSTGRES_DB: My_DB 
      POSTGRES_USER: My_DB_User 
      POSTGRES_PASSWORD: My_DB_Password 
      PG_DATA: /var/lib/postgresql/data/pgdatai 
     deploy: 
      placement: 
       constraints: 
        - node.role == worker 
        - node.labels.type == queue 

    adminer: 
     image: adminer 
     ports: 
      - 8080:8080 

und ich nicht jeden Stapel auf meinem Maschinen. Doing Befehl unten (nicht sicher, ob richtige) Ich habe einen Fehler: yaml: line 2: did not find expected key

docker stack deploy --compose-file docker-compose.yml my_hostname 

mein Hostname wird von mir aus Befehl docker node ls in Manager-Computer lesen

Vielleicht hat ja jemand dealed mit einem sehr ähnlichen Problem und Ziele und kann mir eine Anleitung geben. Ich habe mir mehrere Demos im Internet angesehen, aber ich fand diese ein wenig nutzlos. Ich würde jede Hilfe und Anleitungen schätzen, wie ich dieses "Backup" erreichen kann

Antwort

0

Ok, so verstehe ich jetzt yaml mehr. Für alle anderen, die ähnliche Probleme auftreten:

1) Überprüfen Sie Ihre in YML-Datei schreiben. Du solltest zwei Mal auf weiße Flecken achten.

2) rekonfiguriert I yml Datei:

version: '3' 
services: 
db: 
    image: postgres 
    environment: 
    POSTGRES_DB: db_db 
    POSTGRES_USER: db_user 
    POSTGRES_PASSWORD: db_pass 
    PG_DATA: /var/lib/postgresql/data/pgdatai 
    expose: 
    - "5432" 
    ports: 
    - "5432:5432" 
    volumes: 
    - /var/lib/postresql/db/ 
    deploy: 
    placement: 
    constraints: 
    - node.hostname == vmAPI1 

3) Ich benutzte Befehl Dienst läuft Schwarm für die Umsetzung:

docker stack deploy --compose-file docker-compose.yml name_of_your_manager_swarm