Nie należy niczego instalować w sesji bash.
Ponieważ docker używa UnionFS (unijnej usługi systemu plików)
, gdy tylko wyjdziesz z sesji bash, wszelkie modyfikacje zostaną utracone po usunięciu kontenera.
Możesz wypróbować docker commit
Twojego kontenera „Exited”, ale nie w ten sposób tworzysz nowy obraz.
To, co robisz, to tworzenie pliku tekstowego o nazwie Dockerfile
, w którym wykonujesz podobne kroki, jak oficjalny obraz postgres Dockerfile
(chyba że chcesz zacząć od Ubuntu).
Obejmuje:
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/*
Uruchom docker build -t mypostgres .
:to zbuduje nowy obraz, który będzie zawierał postgres.
Innymi słowy, plik Dockerfile służy do utrwalania etapów instalacji w deklaratywnym pliku tekstowym, z którego można w dowolnym momencie zbudować obraz.