2 votes

Ne peut pas partager les données du conteneur Docker via -v

Essayer de jouer avec postgres et docker:

 docker run --name pg -v /Users/xxx/docker/data:/var/lib/postgresql/data -d postgres

s'arrête immédiatement. Exécutez l'image sans -v le conteneur continue de fonctionner. Si je me connecte via /bin/sh je peux voir le point de montage avec les bases de données par défaut de postgres:

root@f9e0e92dae26:/# df -k
Filesystem     1K-blocks     Used Available Use% Mounted on
none            19049892   737424  17321744   5% /
tmpfs            1025332        0   1025332   0% /dev
shm                65536        8     65528   1% /dev/shm
none           116884912 52807056  64077856  46% /var/lib/postgres/data
/dev/sda1       19049892   737424  17321744   5% /var/lib/postgresql/data

Mais je ne peux pas les partager avec l'hôte de la manière dont l'option -v le dit. Qu'est-ce qui ne va pas ici?


Le journal dit:

    Les fichiers appartenant à ce système de base de données seront possédés par l'utilisateur "postgres".
Cet utilisateur doit également posséder le processus serveur.

Le cluster de bases de données sera initialisé avec la locale "en_US.utf8".
L'encodage de base de données par défaut a en conséquence été défini sur "UTF8".
La configuration de recherche de texte par défaut sera définie sur "anglais".

Les sommes de contrôle de pages de données sont désactivées.

réparation des autorisations sur le répertoire existant /var/lib/postgresql/data ... ok
initdb: impossible de créer le répertoire "/var/lib/postgresql/data/pg_wal/archive_status" : Permission refusée
initdb: suppression du contenu du répertoire de données "/var/lib/postgresql/data"

J'ai essayé de passer un répertoire partagé supplémentaire à la machine virtuelle, à côté de /Users et /, dans mon cas /Users/xxx/docker/data, redémarrer la machine virtuelle mais cela semble ne pas fonctionner. Dans la machine virtuelle (docker-machine ssh) je peux voir maintenant /data monté. Docker machine semble monter la dernière partie du chemin complet. Toute explication? Ainsi avec cela peut-être les images officielles de postgres pourraient être modifiées (dans le dockerfile?) pour changer le chemin de base, des exemples seraient appréciés.

0voto

xyz Points 305

J'ai rencontré le même problème avec la machine virtuelle Vbox sous Windows. J'ai essayé d'utiliser des dossiers partagés entre la machine virtuelle et mon système d'exploitation Windows, ce qui a causé le problème avec les autorisations. J'ai résolu le problème en passant le répertoire de /home/{username}/.. pour un volume

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X