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?
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