web-dev-qa-db-fra.com

Exemple d'utilisation de docker-compose volumes_from

Pouvez-vous fournir un exemple de partage d'un chemin à l'aide de volumes_from du conteneur A au conteneur B, en plus comment le conteneur B peut accéder à ce chemin une fois le partage effectué.

Merci

14
JavaSa

Comme la documentation l'a dit volumes si vous êtes dans version 3 vous pouvez utiliser The top-level volumes pour définir un volume nommé comme db-data code ee ci-dessous et vous pouvez le référencer dans tous les services quelque chose comme ceci:

version: "3"

services:

  web:
    nginx:Alpine
    ports:
    - "80:80"

  postgres:
    image: postgres:9.4
    volumes:
      - db-data:/var/lib/db

  backup:
    image: postgres:9.4
    volumes:
      - db-data:/var/lib/backup/data

  redis:
    image: redis
    ports:
      - "6379:6379"
    volumes:
      - ./data:/data

volumes:
  db-data:

version 2.0:

volumes_from vous permet de monter toutes les données ou volumes d'un autre service ou conteneur, vous devez spécifier le niveau d'accès indiqué par la documentation volumes from dans votre code, vous pouvez utiliser quelque chose comme ceci:

version: "2"

services:
  web:
    image: nginx:Alpine
    ports:
      - "80:80"
    volumes_from:
      - redis:rw
  postgres:
    image: postgres:9.4
    volumes:
      - /data/webapp
  backup:
    image: postgres:9.4
    volumes:
      - /var/lib/backup/data

  redis:
    image: redis
    ports:
      - "6379:6379"
    volumes:
      - /data/db

Pour coder au-dessus de redis définissez un volume de services et ensuite vous pouvez utiliser dans un autre conteneur par exemple web avec volumes_from ressemble à un service Web qui utilise ce service de volume spécifie le niveau d'accès à read and write

18
julian salas