Como atualizar o software (por exemplo, PostgreSQL) em execução em um contêiner Docker?

5

Ao usar a imagem base do PostgreSQL Docker, você escolhe uma versão do PostgreSQL, abre um container e está em execução. Ótimo! Mas qual é a maneira correta / melhor de atualizar para uma versão mais recente do PostgreSQL no futuro?

    
por Pascal Lindelauf 11.09.2014 / 16:52

3 respostas

3

Não há uma solução fácil para isso no momento, mas a mais simples que encontrei é pg_dump da versão antiga e, em seguida, carrego esse despejo na versão mais recente.

Há um pouco de discussão no link sobre possíveis soluções para esse problema e uma prova de conceito para uma atualização com base no docker no link

    
por 29.09.2016 / 22:14
1

Você só precisa especificar uma tag , que corresponde a um versão do PostgreSQL dentro de uma imagem. Você não deve atualizar o PostgreSQL manualmente com o contêiner em execução, porque isso anula o propósito de usar a imagem base.

Em Dockerfile , usando FROM instrução :

FROM postgres:9.4

Na linha de comando, usando o run command :

$ sudo docker run [OPTIONS] postgres:9.4 [COMMAND] [ARG...]
    
por 14.12.2014 / 20:44
1

Depois de executar o PostgreSQL em um contêiner por mais de um ano, eu acho que os bancos de dados não são ótimos para contêineres por exatamente motivos como este. Os contêineres não devem ser usados como VMs e, portanto, todos os aspectos do conjunto de ferramentas o enfrentarão se você tentar tratá-lo como uma VM administrada por você. Os contêineres são como chroots glorificados - isolamento e ambientes reproduzíveis para um aplicativo específico, e quanto menos configuração esse aplicativo exigir, melhor.

Tudo isso dito, se você insiste que deve rodar o PostgreSQL em um container, no mínimo você deve montar um volume de algum lugar para colocar os arquivos de dados para que você possa destruir ou modificar a imagem do seu servidor de coisas como atualizações do PostgreSQL). Qualquer configuração que precise ser feita deve ser feita no Dockerfile para que as atualizações também sejam tratadas pela edição do Dockerfile - se você estiver fazendo uma pequena atualização, por exemplo, talvez seja necessário apenas alterar a tag da imagem FROM no seu Dockerfile.

    
por 19.10.2016 / 07:21

Tags