PostgreSQL
 sql >> Datenbank >  >> RDS >> PostgreSQL

Docker, installiere postgresql in einem Container, der ubuntu:14.04 enthält, geht verloren, wenn er außerhalb des Containers ist

Sie sollten nichts in einer Bash-Sitzung installieren.
Da Docker UnionFS (Union Filesystem Service) verwendet , sobald Sie Ihre Bash-Sitzung verlassen, gehen alle Änderungen verloren, wenn der Container entfernt wird.

Sie könnten es mit einem docker commit versuchen Ihres "Exited"-Containers, aber so erstellen Sie kein neues Image.

Was Sie tun, ist eine Textdatei mit dem Namen Dockerfile zu erstellen , in dem Sie ähnlichen Schritten folgen wie beim offiziellen Postgres-Image Dockerfile (außer Sie möchten von Ubuntu aus starten).

Es enthält:

RUN apt-get update \
    && apt-get install -y postgresql-common \
    && sed -ri 's/#(create_main_cluster) .*$/\1 = false/' /etc/postgresql-common/createcluster.conf \
    && apt-get install -y \
        postgresql-$PG_MAJOR=$PG_VERSION \
        postgresql-contrib-$PG_MAJOR=$PG_VERSION \
    && rm -rf /var/lib/apt/lists/*

Sie führen docker build -t mypostgres . aus :Das erstellt ein neues Image, das Postgres enthält.

Mit anderen Worten, das Dockerfile dient dazu, die Installationsschritte in einer deklarativen Textdatei zu speichern, aus der Sie jederzeit ein Image erstellen können.