Executando o PostgreSQL no Docker em ambiente Windows
- #Docker
- #PostgreSQL
Neste artigo, aprenderemos como executar o PostgreSQL em um container Docker para desenvolvimento local no sistema Windows.
Observação.: para realizar a instalação do PostgreSQL é necessário ter o Docker instalad
O porquê de está utilizando o Docker?
No meu ponto de vista utilizar ele para ambiente de desenvolvimento facilita tanto que no mesmo podemos trabalhar com vários tipos de SGBDs, sem a precisão de instalar do zero alguns Bancos de Dados que é desgastante. Porém é bom ressaltar que ele não veio para resolver todos os problemas, nem a solução única para resolver variadas situações.
Iniciando a instalação do PostgreSQL no Docker
1- Instalando a imagem do Docker do Postgres
Antes de instalar a imagem do Postgres é bom conferir qual versão que deseja instalar no site do hub.docker e no mesmo possui uma documentação explicando assuntos pontuais.
Site huh.docker (https://hub.docker.com/_/postgres/)
=> Para baixar a imagem do PostgresSql, abra seu CMD e execute o seguinte comando e aguarde até finalizar download.
docker pull postgres
(Esse comando é referente a última versão do Postgres)
docker pull postgres:12.2
(Esse comando é referente a versão do Postgres 12.2 ou pode inserir outra versão que deseja)
=> Para ver se a imagem foi realmente baixada e saber as informações dela, execute o seguinte comando:
docker images
Como você está vendo na imagem acima, possui as informações do REPOSITORY, TAG, IMAGE ID, CREATE e SIZE.
2- Executando o contêiner do Docker
Após a instalação da imagem precisamos executar a mesma no contêiner do Docker e especificar alguns parâmetros, conforme o comando abaixo.
docker run --name meuPostgresDb -p 5455:5432 -e POSTGRES_USER=admin -e POSTGRES_PASSWORD=admin123 -e POSTGRES_DB=postgresDB -d postgres
Observação: coloque o USER e o PASSWORD de acordo a seu gosto.
Explicando cada parte do comando!
docker run
É o comando usado para criar e executar um novo contêiner com base em uma imagem já baixada.
--name meuPostgresDb
É o nome que atribuímos ao container que estamos criando.
-p 5455:5432
É o mapeamento das portas. O Postgres executa nativamente na porta 5432 e temos que mapear essa porta (que fica no Docker) para uma porta local. Nesse caso, a porta 5455 local é mapeada para a porta 5432 do Docker.
-e POSTGRES_USER=postgresUser,
-e POSTGRES_PASSWORD=postgresPW,
-e POSTGRES_DB=postgresDB
Define algumas variáveis de ambiente. São elas o nome de usuário e a senha do usuário administrador, bem como o nome do banco de dados.
-d
Indica que o contêiner é executado em um modo desanexado. Ou seja, que ele é executado em um processo em segundo plano.
Postgres
É o nome da imagem que estamos usando para criar o contêiner.
=> Para ver o contêiner recém-criado digite o seguinte comando na CLI.
docker ps
=> Ou pode visualizar usando a interface do Docker Desktop que está em seu PC.
=> Caso tenha esquecido as variáveis de ambiente que foi definiu para o contêiner, pode executar no CLI o seguinte comando.
docker exec myPostgresDb env
=> Ou pelo Docker Desktop clicando no contêiner PostegresDb e posteriormente clicando em Inspect, conforme mostrado abaixo:
Observação: as variáveis de ambiente podem mudar conforme as versões da imagem instalada. É bom consultar sempre os documentação, em especial a documentação relacionada à versão da imagem que você está consumindo.
3- Acessando banco de dados (Postgres) com o PgAdmin
Após termos o Postgres funcionando, podemos trabalhar com ele utilizando o console ou, se preferir, usando uma interface do usuário que é “PgAdmin”. Eu mesmo instalei para facilitar no uso.
Link para baixar.
https://www.pgadmin.org/download/pgadmin-4-windows/
A instalação PgAdmin é bem tranquila e não requer configuração. Depois de finalizar a instalação você pode se conectar ao servidor usando a variável de ambiente que definiu ao executar o docker run. É bom resaltar que o nome do host é simplesmente localhost.
Com essa instância local do Postgres ficou fácil de fechá-la e removê-la quando não precisar mais dela. Desde já agradeço por ler esse artigo que fez buscando facilitar nossas atividades e espero que tenha ajudado, qualquer dúvida, estou à disposição.
Minhas redes sociais:
LinkedIn: https://www.linkedin.com/in/daniel-coutinho-neto/
GitHub: https://github.com/danielcoutinhoneto
Instagram: https://www.instagram.com/daniel.c.neto/
E-mail: danielcoutinhoneto@gmail.com