Postgres dans le Panneau de données persistantes

Je suis en cours d'exécution postgres à l'intérieur d'un conteneur docker pour limiter la quantité de ressources système, il a accès. J'ai un peu de mal à comprendre comment rendre les données persistantes. J'ai lu les articles suivants:

https://www.andreagrandi.it/2015/02/21/how-to-create-a-docker-image-for-postgresql-and-persist-data/

http://container42.com/2013/12/16/persistent-volumes-with-docker-container-as-volume-pattern/

Qui vous suggérons d'utiliser uniquement les données de conteneur, et puis d'avoir mon postgres contenant un lien vers elle. Ce que je ne suis pas à comprendre, c'est que l'avantage de ce système? Aussi loin que je peux dire, si pour une raison quelconque, le docker-machine à l'arrêt (par exemple; le déplacement vers une autre machine physique), les données ne contenant s'arrête en cours d'exécution, et l'ensemble de son contenu sont perdus? J'ai essayé de créer un volume dans la postgres conteneur, mais il ne fait pas semblent rien enregistrer sur le disque.

Voici mon menu fixe de fichier. Ce que je fais mal?

FROM ubuntu
MAINTAINER Andrew Broadbent <andrew.broadbent@manchester.ac.uk>
# Add the PostgreSQL PGP key to verify their Debian packages.
# It should be the same key as https://www.postgresql.org/media/keys/ACCC4CF8.asc
RUN apt-key adv --keyserver hkp://p80.pool.sks-keyservers.net:80 --recv-keys B97B0AFCAA1A47F044F244A07FCC7D46ACCC4CF8
# Add PostgreSQL's repository. It contains the most recent stable release
#     of PostgreSQL, ``9.3``.
RUN echo "deb http://apt.postgresql.org/pub/repos/apt/precise-pgdg main" > /etc/apt/sources.list.d/pgdg.list
# Install ``python-software-properties``, ``software-properties-common`` and PostgreSQL 9.3
#  There are some warnings (in red) that show up during the build. You can hide
#  them by prefixing each apt-get statement with DEBIAN_FRONTEND=noninteractive
RUN apt-get update && apt-get install -y python-software-properties software-properties-common postgresql-9.3 postgresql-client-9.3 postgresql-contrib-9.3
# Note: The official Debian and Ubuntu images automatically ``apt-get clean``
# after each ``apt-get``
# Run the rest of the commands as the ``postgres`` user created by the ``postgres-9.3`` package when it was ``apt-get installed``
USER postgres
# Create a PostgreSQL role named ``docker`` with ``docker`` as the password and
# then create a database `docker` owned by the ``docker`` role.
# Note: here we use ``&&\`` to run commands one after the other - the ``\``
#       allows the RUN command to span multiple lines.
RUN    /etc/init.d/postgresql start &&\
psql --command "CREATE USER docker WITH SUPERUSER PASSWORD 'docker';" &&\
createdb -O docker docker
# Complete configuration
USER root
RUN echo "host all  all    0.0.0.0/0  md5" >> /etc/postgresql/9.3/main/pg_hba.conf
RUN echo "listen_addresses='*'" >> /etc/postgresql/9.3/main/postgresql.conf
# Expose the PostgreSQL port
EXPOSE 5432
# Add VOLUMEs to allow backup of config, logs and databases
RUN mkdir -p /var/run/postgresql && chown -R postgres /var/run/postgresql
VOLUME  ["/etc/postgresql", "/var/log/postgresql", "/var/lib/postgresql"]
# Set the default command to run when starting the container
USER postgres
CMD ["/usr/lib/postgresql/9.3/bin/postgres", "-D", "/var/lib/postgresql/9.3/main", "-c", "config_file=/etc/postgresql/9.3/main/postgresql.conf"]

OriginalL'auteur Andy | 2016-04-05