Executando verificação de segurança...
7

[TUTORIAL] Como instalar e rodar o banco Postgres no docker

Como criar um banco de dados postgres em um container docker

Esse tutorial visa mostrar para quem já tem o docker instalado e configurado.

Caso ainda não tenha, faça o download no site oficial: https://www.docker.com/products/docker-desktop/

Para baixar a imagem do postgres utilize o comando abaixo:

docker pull postgres

Ele irá baixar a última versão disponível:

https://a.imagem.app/AposQv.png

Após a imagem estar baixada, ao rodar o comando:

docker images

A imagem do postgres aparecerá listada:

https://a.imagem.app/Apo1pT.png

Agora vamos criar o container do postgres setando algumas configurações inicias para o banco:

docker run --name my-postgres -e POSTGRES_PASSWORD=mypassword -e POSTGRES_DB=mydatabase -p 5432:5432 -d postgres

—name: nome do container

-e POSTGRES_PASSWORD: senha para conectar ao banco

-e POSTGRES_DB: irá criar um database

-p: porta que será exposta na sua maquina para fazer o de para com a porta do container

-d: qual imagem docker que será usada pelo comando docker run

Rodando o comando acima e utilizando o comando abaixo:

docker ps

Será possíver visualizar que o container do postgres foi criado com o nome my-postgres e que já esta em execução:

https://a.imagem.app/Apoie3.png

Pronto, a sua màquina já está rodando um banco postgres na porta 5432 com um database chamado mydatabase.

Bonus: Vamos instalar também o pgadmin no docker para visualizar e conectar ao banco.

Primeiro, baixe a imagem do pgadmin:

docker pull dpage/pgadmin4

Após o imagem baixada crie o container:

docker run -p 5050:80 -e [email protected] -e PGADMIN_DEFAULT_PASSWORD=sua_senha -d dpage/pgadmin4

Substitua "[email protected]" pelo endereço de e-mail que você deseja usar para se conectar ao pgAdmin e "sua_senha" pela senha que você deseja usar.

Abra um navegador e acesse o endereço "http://localhost:5050" para acessar a interface do pgAdmin.

Entre com o email e senha que você definiu na criação do container:

https://a.imagem.app/ApoFCZ.png

Após logar, clique com o botão direito em cima de Server, vá em Register e clique em Server:

https://a.imagem.app/ApoXfi.png

De um nome para o seu server:

https://a.imagem.app/ApoT28.png

Na aba de Connection, defina:

Host name/address: vou explicar logo abaixo

Port: 5432

Maintenance: mydatabase (foi definido na hora de rodar o docker run)

Username: postgres (default)

Password: mypassword (foi definido na hora de rodar o docker run)

Para descobrir qual é o Host name, primeiro você dever rodar o comando abaixo para descobrir o CONTAINER ID do banco postgres:

docker ps

https://a.imagem.app/ApoqlE.png

Com o id do container em mãos rode o comando:

docker inspect fa666e2b8fe4

Nesse caso o id do meu container não deve ser igual o seu, então se atente para copiar o ID que aparece ao rodar o docker ps.

No final do que foi listado, pegue o número da tag IPAddress:

Rasurei metade pois ainda não sei se a imagem pode contem dados sensiveis, então se você sabe a resposta, deixo no comentário aqui em baixo para compartilhar conhecimento :)

https://a.imagem.app/ApoJMe.png

Agora é só preencher o valor do Host name no pgadmin e clicar em Save:

https://a.imagem.app/ApolBN.png

Conectado ao banco:

https://a.imagem.app/Apo9RY.png

Agora você consegue usar para estudos de sql, para uma aplicação local, entre outros

Carregando publicação patrocinada...
2

Mano que maravilha esse tutorial

Estou fazendo um teste técnico e para isso estou criando um estrutura em docker para facilitar a vida. Seu tuto foi perfeito para a criação do postgre local no docker!

Com relação as informações de rede, acho que não tem com o que se preocupar.
Todas essas informações dizem respeito ao "NetworkSettings" do seu container, então ta safe.
Por exemplo, ninguem poderia usar essas informações para invadir a sua máquina.

1
1
1
1

Comecei a trabalhar com Postgres recentemente e estou curtindo demais. Antes tinha trabalhado com SQL Server e Oracle.

Estamos rodando Postgres + Docker para testes de integração automatizado e tá top demais.