Article image
Leandro Duarte
Leandro Duarte18/08/2023 10:23
Compartilhe

Instalando PostgreSQL e PGAdmin com Docker

  • #Docker
  • #PostgreSQL
  • #Java

A muito tempo atrás eu tive problemas com o PGAdmin no linux. Me vi na necessidade de fazer a instalação do mesmo através do docker. Com isso eu pouparia minha máquina de ficar "suja" e ainda consegui evitar esse erro que era uma particularidade da distro que eu utilizava (eu não queria trocá-la).

Com isso, eu criei um rascunho de um docker-compose.yml que toda vez que eu precisasse de um banco de dados rapidamente e ainda poder gerenciá-lo, EM QUALQUER MÁQUINA eu subiria o container e então estaria com a ferramenta ali à mão.

O que eu preciso?

Você precisa estar disposto, uma vez que o docker se trata de uma nova ferramenta a se aprender e certamente você utilizará muito em sua jornada de desenvolvedor.

Além disso, você precisa, claro, do Docker instalado. Isso você pode fazer acessando aqui: https://docs.docker.com/engine/install/

O próprio site tem um tutorial de como instalá-lo e acredito que ele seja bem compreensível. Entretanto se ainda encontrou dificuldades, deixa aqui nos comentários e eu irei CORRENDO te ajudar hehe!

Instalei o danado e agora?

Agora você escolhe um diretório em seu computador e cria um arquivo chamado docker-compose.yml

Dentro desse arquivo você deve colar o seguinte código:

version: '3'

services:
 postgres-compose:
image: postgres
environment:
 POSTGRES_PASSWORD: "admin@123"
 POSTGRES_USER: "admin"
volumes:
 - /caminho/de/sua/preferencia:/var/lib/postgresql/data 
ports:
 - "15432:5432"
networks:
 - postgres-compose-network
  
 pgadmin-compose:
image: dpage/pgadmin4
environment:
 PGADMIN_DEFAULT_EMAIL: "admin@admin.com"
 PGADMIN_DEFAULT_PASSWORD: "admin@123"
ports:
 - "16543:80"
depends_on:
 - postgres-compose
networks:
 - postgres-compose-network

networks: 
 postgres-compose-network:
driver: bridge

Perceba que no arquivo há essa linha:

volumes:
- /caminho/de/sua/preferencia:/var/lib/postgresql/data 

Você deve trocar /caminho/de/sua/preferencia para o local do seu host, isto é, local onde você persistirá os dados do seu banco na sua máquina local. Um exemplo de host é que eu uso é:

/home/ldnovaes/Documentos/Docker/postgresPgadmin

Salve o arquivo e então abra o terminal no mesmo diretório que está o seu docker-compose.yml

No terminal de sua escolha digite:

docker-compose up --build -d

Isso deve inicializar o contêiner e você já terá acesso ao seu banco de dados + o gerenciador.

Abrindo o PGAdmin e criando um novo Banco de Dados

Em seu navegador digite: http://localhost:16543/

Você deve ver uma tela como essa:

image

Em email você usa a credencial que colocamos no docker-compose: admin@admin.com

e em senha coloque: admin@123. Aqui você pode também definir o idioma para o Português do Brasil.

A próxima tela, após esse login é onde configuraremos o banco que subimos dentro do container.

image

Clique com o Botão Direito do Mouse em Server > Registrar > Servidor.

Isso deve abrir uma interface logo de cara para que você insira alguns dados que irei disponibilizar:

image

Em nome, você pode colocar o de sua preferência. Normalmente eu coloco localhost, mas escolha o nome mais confortável para você.

Após inserir o nome, não se preocupe com nenhum dado nessa tela, cliique em Conexão. Essa é a tela que deve aparecer para você:

image

Aqui é onde está o pulo do gato! Você deve colocar exatamente esses dados:

Em HostName/adress: postgres-compose

Em Username: admin

Em password: admin@123

Pronto, agora você está com seu banco de dados operacional e ainda com o gerenciador do mesmo. Futrique a vontade e procure tutoriais na internet para o que for fazer. Lembrando que ele não foi instalado em sua máquina. Toda vez que você for iniciá-lo é bom que repita o passo do docker-compose up --build -d para que você consiga acessar os seus bancos. Qualquer aplicação local pode usá-lo também.

Referências

https://www.postgresql.org/docs/9.0/sql-createdatabase.html

https://docs.docker.com/engine/install/

Compartilhe
Comentários (1)
Michelle Lira
Michelle Lira - 18/08/2023 10:47

Obrigad apor compartilhar o artigo Leandro. Muito útil!