Non dovresti installare nulla in una sessione bash.
Poiché docker utilizza UnionFS (servizio filesystem union)
, non appena esci dalla sessione bash, qualsiasi modifica viene persa quando il contenitore viene rimosso.
Potresti provare un docker commit
del tuo contenitore "Exited", ma non è così che crei una nuova immagine.
Quello che fai è creare un file di testo chiamato Dockerfile
, in cui segui passaggi simili a quelli dell'immagine ufficiale di postgres Dockerfile
(tranne se vuoi iniziare da Ubuntu).
Include:
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/*
Tu esegui docker build -t mypostgres .
:questo creerà una nuova immagine che conterrà postgres.
In altre parole, Dockerfile è lì per mantenere i passaggi di installazione in un file di testo dichiarativo, da cui puoi creare un'immagine in qualsiasi momento.