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.