web-dev-qa-db-fra.com

Où est le volume Docker stocké dans l'ordinateur hôte pour Docker-Compose?

Considérer ce qui suit docker-compose déposer

version: "2"
services:
  postgres:
    image: postgres:9.6
    volumes:
      - ./vol_folder:/var/lib/postgresql
    ports:
      - "5432:5432"

Voici mon historique de commandement sur mon mac

docker-compose up

psql -h 192.168.99.100 -p 5432 -U postgres

create table test (my_id bigserial primary key);
INSERT INTO test (my_id) values (1);
SELECT * FROM test;

\q

À l'origine, je pensais que les commandes ci-dessus causeront un .sql Fichier à créer dans ./vol_folder de l'ordinateur hôte. Mais je ne vois pas .sql Fichier dans ./vol_folder plutôt juste un répertoire data dans ./vol_folder

En outre, si je docker-compose down et docker-compose up Encore une fois, je peux voir que mes données dans la base de données sont maintenant parties.

J'ai soupçonné que lorsque j'ai créé les données lorsque l'image est en cours d'exécution, les données ne sont pas stockées à ./vol_folder Ainsi, lorsque je redémarre, il n'y a rien à monter de l'hôte.

Donc, je suppose que ma question est de savoir où est le volume stocké dans mon ordinateur hôte? Le volume de Docker est-il un seul moyen (par exemple, des données d'hôte au conteneur) pas à deux voies?

6
kevP

Les volumes seront normalement stockés quelque part dans /var/lib/docker/volumes/

Pour en savoir plus, essayez les commandes suivantes

docker volume ls
docker volume inspect <volume identifier>

Voir aussi: https://www.linux.com/learn/docker-volumes-and-networks-commose

5
amarillion