Passo a passo: como criar e executar um contêiner Postgres com Docker

Por Gaspar Barancelli Junior em 10 de março de 2023

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:

  • docker run: esse comando é utilizado para criar e executar um contêiner a partir de uma imagem.

  • -d: essa opção indica que o contêiner será executado em segundo plano (modo detached).

  • --name postgres: com essa opção, você pode dar um nome ao seu contêiner. Neste caso, estamos nomeando o contêiner como "postgres".

  • -p 5432:5432: 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.

  • -e POSTGRES_PASSWORD=sua-senha: essa opção define a variável de ambiente POSTGRES_PASSWORD com a senha que você escolher.

  • -v pgdata:/var/lib/postgresql/data: essa opção define o volume pgdata criado anteriormente como o local onde os dados do Postgres serão armazenados.

  • postgres: esse é o nome da imagem que estamos utilizando para criar o contêiner.

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:

  • docker start postgres: esse comando é utilizado para iniciar o contêiner Postgres se ele estiver parado.

  • docker stop postgres: esse comando para o contêiner quando ele estiver em execução.

  • docker rm postgres: quando o contêiner estiver parado, esse comando remove o contêiner.

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.

// Livros recomendados relacionados ao assunto do post

// Compartilhe esse Post