Passo a passo: como criar e executar um contêiner Postgres com Docker
Este tutorial irá guiá-lo através dos passos para subir um contêiner Postgres utilizando o Docker. Vamos começar!
Passo 1: Instale o Docker
Se você ainda não tem o Docker instalado, você pode seguir as instruções oficiais de instalação para a sua plataforma: https://docs.docker.com/engine/install/.
Passo 2: Baixe a imagem do Postgres
O próximo passo é baixar a imagem do Postgres a partir do Docker Hub. Para fazer isso, execute o seguinte comando em seu terminal:
docker pull postgres
Passo 3: Crie um volume para persistência de dados
Antes de executar o contêiner, é importante criar um volume para persistência de dados. Isso garantirá que os dados do Postgres não sejam perdidos quando o contêiner for interrompido ou excluído. Para criar um volume, execute o seguinte comando em seu terminal:
docker volume create pgdata
Passo 4: Execute o contêiner Postgres
Com o volume criado, agora você pode executar o contêiner Postgres. Para fazer isso, execute o seguinte comando em seu terminal:
docker run -d --name postgres -p 5432:5432 -e POSTGRES_PASSWORD=sua-senha -v pgdata:/var/lib/postgresql/data postgres
Vamos explicar esse comando em mais detalhes:
-
: esse comando é utilizado para criar e executar um contêiner a partir de uma imagem.docker run
-
: essa opção indica que o contêiner será executado em segundo plano (modo detached).-d
-
: com essa opção, você pode dar um nome ao seu contêiner. Neste caso, estamos nomeando o contêiner como "postgres".--name postgres
-
: essa opção indica que estamos mapeando a porta 5432 do contêiner para a porta 5432 do host. A porta 5432 é a porta padrão do Postgres.-p 5432:5432
-
: essa opção define a variável de ambiente POSTGRES_PASSWORD com a senha que você escolher.-e POSTGRES_PASSWORD=sua-senha
-
: essa opção define o volume pgdata criado anteriormente como o local onde os dados do Postgres serão armazenados.-v pgdata:/var/lib/postgresql/data
-
: esse é o nome da imagem que estamos utilizando para criar o contêiner.postgres
Passo 5: Acesse o banco de dados
Agora que o contêiner do PostgreSQL está em execução, podemos nos conectar a ele usando qualquer cliente PostgreSQL. Vamos usar o psql, que é um cliente PostgreSQL de linha de comando.
Para conectar-se ao banco de dados, execute o seguinte comando no terminal:
psql -h localhost -p 5432 -U postgres
Este comando conecta-se ao servidor PostgreSQL em localhost (que é o endereço IP do contêiner) na porta 5432 e como o usuário padrão postgres. Ele solicitará a senha do usuário postgres que você definiu no arquivo docker run.
Uma vez conectado, você pode executar comandos SQL. Por exemplo, para criar um banco de dados, execute:
CREATE DATABASE minhabasededados;
E para listar todos os bancos de dados, execute:
\l
Para sair do psql, execute:
\q
Passo 6: Gerencie o contêiner Postgres
Você pode gerenciar o contêiner Postgres utilizando comandos Docker. Aqui estão alguns dos comandos mais úteis:
-
: esse comando é utilizado para iniciar o contêiner Postgres se ele estiver parado.docker start postgres
-
: esse comando para o contêiner quando ele estiver em execução.docker stop postgres
-
: quando o contêiner estiver parado, esse comando remove o contêiner.docker rm postgres
Passo 7: Executando o Postgres no Docker Compose
Caso você ainda não conheça o Docker Compose, sugiro que você leia o nosso post para ter um maior entendimento do restante deste tutorial.
Crie um novo arquivo com o nome "docker-compose.yml" no diretório de trabalho. Esse arquivo será responsável por definir a configuração do contêiner do PostgreSQL. Adicione o seguinte conteúdo ao arquivo:
version: '3'
services:
db:
image: postgres
restart: always
volumes:
- pgdata:/var/lib/postgresql/data
environment:
POSTGRES_PASSWORD: sua-senha
ports:
- 5432:5432
volumes:
pgdata:
O arquivo acima define um serviço chamado "db" que usa a imagem oficial do PostgreSQL e define uma senha para o usuário postgres. Além disso, ele define a porta padrão para a conexão com o PostgreSQL.
Após criar o arquivo de configuração, você pode subir o banco de dados PostgreSQL usando o Docker Compose. Para fazer isso, execute o seguinte comando no diretório onde o arquivo "docker-compose.yml" está localizado:
docker-compose up
Esse comando irá baixar a imagem do PostgreSQL, criar um contêiner com a configuração especificada no arquivo "docker-compose.yml" e iniciar o contêiner.
Após a execução do comando anterior, o PostgreSQL estará em execução em um contêiner Docker. Você pode se conectar ao PostgreSQL usando um cliente PostgreSQL como mencionado no passo 5.
Conclusão
Neste tutorial, você aprendeu como criar e executar um contêiner do PostgreSQL no Docker e Docker Compose. Você também aprendeu como configurar as opções de inicialização do contêiner, como expor a porta do PostgreSQL e como se conectar a ele usando o cliente psql.