O PostgreSQL tem um repositório oficial na Docker Store, onde podemos obter imagens com as ultimas versões. Com isso é facial iniciar um serviço do PostgreSQL com configurações default.
O
comando a seguir executa a ultima versão estável do PostgreSQL
disponível no repositório como serviço na porta 5432 com senha "mypwd"
para o super usuário "postgres":
Parâmetros:
-d Executa comando em background
-e Configura variáveis de ambiente do processo Docker.
--name Nome do processo, usado como referência em outros comandos.
Testando serviço executando a ferramenta psql:
Estendendo imagem para usar locale pt_BR.utf-8
A configuração de linguajem e codificação de caracteres, por default são en_US.utf8,
geralmente não adequado a caracteres da linguá portuguesa, podemos
extender a imagem docker do PostgreSQL e alterar as configurações de Encoding, Collate e Ctype. Para isso devemos:
- Criar arquivo Dockerfile para definir características da nova imagem.
- Fazer build da nova imagem.
- Executar processo apontando para imagem criada.
Parâmetros:
-t Nome da image "nome:tag", usado para referência em outros comandos.
Parâmetros:
-p especifica ponte entre a porta do container e porta do host
Por default os dados são armazenados no container, logo se este for apagado todos os dados serão perdidos, uma boa pratica é usar o recurso de Data Volumes, direcionado o conteúdo de determinada pasta do container para a maquina host, evitando perda de dados quando um container for
removido. No caso do PostgreSQL podemos mapear o conteúdo da pasta
"/var/lib/postgresql/data", logo o comando de execução do serviço
ficaria assim:
Outros comandos do Docker
Referências
- https://docs.docker.com/get-started/
- https://store.docker.com/images/postgres
- https://docs.docker.com/engine/tutorials/dockervolumes/
- https://www.digitalocean.com/community/tutorials/como-instalar-e-utilizar-o-docker-primeiros-passos-pt
- https://www.digitalocean.com/community/tutorials/how-to-work-with-docker-data-volumes-on-ubuntu-14-04