Mon menu fixe composer fichier a trois conteneurs, web, nginx, et postgres. Postgres ressemble à ceci:
postgres:
container_name: postgres
restart: always
image: postgres:latest
volumes:
- ./database:/var/lib/postgresql
ports:
- "5432:5432
Mon objectif est de monter un volume qui correspond à un dossier local appelé ./database
à l'intérieur de la postgres conteneur /var/lib/postgres
. Quand j'ai commencer ces conteneurs et insérer des données dans postgresql, j'ai vérifier que /var/lib/postgres/data/base/
est plein de données, je suis en ajoutant (dans la postgres conteneur), mais dans mon système local, ./database
obtient seulement une data
le dossier, c'est à dire ./database/data
est créé, mais il est vide. Pourquoi?
Notes:
- Ceci suggère mon fichier ci-dessus devrait fonctionner.
- Cette personne est à l'aide de docker services qui est intéressant
Mise à JOUR 1
Par Nick suggestion, j'ai fait un docker inspect
trouvés:
"Mounts": [
{
"Source": "/Users/alex/Documents/MyApp/database",
"Destination": "/var/lib/postgresql",
"Mode": "rw",
"RW": true,
"Propagation": "rprivate"
},
{
"Name": "e5bf22471215db058127109053e72e0a423d97b05a2afb4824b411322efd2c35",
"Source": "/var/lib/docker/volumes/e5bf22471215db058127109053e72e0a423d97b05a2afb4824b411322efd2c35/_data",
"Destination": "/var/lib/postgresql/data",
"Driver": "local",
"Mode": "",
"RW": true,
"Propagation": ""
}
],
Ce qui donne l'impression de données est volé par un autre volume, je n'ai pas de code moi-même. Pas sûr pourquoi. Est la postgres image de la création de ce volume pour moi? Si oui, est-il un moyen d'utiliser le volume plutôt que le volume, je suis de montage lorsque je redémarre? Sinon, est-il un bon moyen de la désactivation de cet autre volume et en utilisant ma propre, ./database
?
Mise à JOUR 2
J'ai trouvé la solution, merci à Nick! (et autre ami) Réponse ci-dessous.