2017-09-26 2 views
0

Je suis nouveau à docker, et j'ai un problème. Je veux gagner en affinité et échanger des données entre deux nœuds de l'essaim de dockers.affinité postgresql - service de docker à essaim

(par exemple ip)

J'ai une en tant que gestionnaire: 192.168.10.1

et travailleur: 192.168.10.2

Ils sont déjà connectés.

J'ai écrit fichier docker-compose.yml pour créer un nouveau service avec DB postgres et gestionnaire de fichiers yml ressemble:

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 

et travailleur:

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 

Et je n'ai pas de pile sur mon Machines. commande faire ci-dessous (pas sûr si elle est correcte d'un) J'ai une erreur: yaml: line 2: did not find expected key

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

mon nom d'hôte est lu dans la machine gestionnaire

Peut-être par moi de commande docker node ls quelqu'un a eu pour thème un problème très similaire et objectifs et peut me donner une orientation. J'ai regardé plusieurs démos sur internet, mais je les ai trouvées un peu inutiles. J'apprécierais toute aide et des guides de la façon dont je peux réaliser cette "sauvegarde"

Répondre

0

Ok, donc je comprends maintenant plus yaml. Pour toute autre personne rencontrant des problèmes similaires:

1) vérifiez votre écriture dans un fichier yml. Vous devriez prendre le soin double des marques blanches.

2) I reconfiguré yml fichier:

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) je commande pour mettre le service à essaim en cours d'exécution:

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