Você não deve instalar nada em uma sessão bash.
Como o docker usa UnionFS (serviço de sistema de arquivos da união) , assim que você sair da sessão do bash, qualquer modificação será perdida quando o contêiner for removido.
Você pode tentar um
docker commit
do seu contêiner "Exited", mas não é assim que você cria uma nova imagem. O que você faz é criar um arquivo de texto chamado
Dockerfile
, em que você segue etapas semelhantes às da imagem oficial do postgres Dockerfile
(exceto que você deseja iniciar no Ubuntu). Inclui:
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/*
Você executa
docker build -t mypostgres .
:que irá construir uma nova imagem que conterá postgres. Em outras palavras, o Dockerfile existe para persistir as etapas de instalação em um arquivo de texto declarativo, a partir do qual você pode construir uma imagem a qualquer momento.