Notícias
Novos modelos de sistemas operacionais na Serverspace
Serverspace Black Friday
RP
março 4, 2025
Atualizado março 4, 2025

Como executar um contêiner Docker com PostgreSQL?

Bancos de dados Linux

Quando se trabalha com vários serviços, surge frequentemente a questão de que a execução de aplicações pode afetar o funcionamento umas das outras, o que é especialmente crítico para serviços.

Isso ocorre porque eles fornecem processamento de consultas para clientes, como servidores de banco de dados, servidores de monitoramento de desempenho e outros, que podem ser interrompidos por processos vizinhos com os mesmos privilégios.

Para garantir integridade, disponibilidade e isolamento dos serviços, a tecnologia de containerização começou a ser amplamente utilizada. Neste artigo, veremos como implantar um banco de dados PostgreSQL usando contêineres Docker.

Resumo breve

O Docker é uma plataforma que automatiza a implantação de snapshots do sistema de arquivos predefinidos (imagens) e permite utilizá-los em ambientes isolados – os contêineres.

A virtualização ocorre por meio do kernel do sistema operacional, onde um ambiente totalmente separado de arquivos, rede e processador é criado e atribuído a um novo processo. Isso significa que um processo limitado no Docker, com ambientes anexados, executará todas as tarefas necessárias do serviço de forma isolada.

Instalação e configuração

Vamos começar com as dependências e softwares necessários para o serviço. Caso o Docker ainda não esteja instalado no seu sistema, execute o seguinte comando:

sudo apt install docker
installation
Screenshot 1 — Instalação do Docker

Após a instalação, podemos iniciar o daemon do Docker e verificar seu funcionamento com os comandos abaixo. Em seguida, encontraremos a imagem necessária no repositório:

systemctl start docker && systemctl status docker
sudo docker search postgres
search-1536x192
Screenshot 2 — Pesquisa de imagem

É importante instalar a imagem oficial do contêiner, identificável por um selo de verificação no lado direito da listagem.

Para baixar a imagem oficial do servidor de banco de dados PostgreSQL, utilize o seguinte comando:

docker pull postgres
docker-pull-1536x520
Screenshot 3 — Download da imagem com Docker Pull

Isso fará o download da imagem do repositório remoto para o repositório local, com o qual o motor do Docker trabalhará posteriormente. Para verificar se a imagem foi baixada corretamente, usamos o seguinte comando:

docker image ls
docker-image-ls
Screenshot 4 — Docker Image

Atenção às permissões do sistema

Como o contêiner compartilha o kernel do sistema operacional do host, algumas funções não serão completamente isoladas. Por exemplo, a criação de processos exige permissões associadas a UID e GID, que podem coincidir com os usuários da máquina host. Isso significa que, ao montar pastas do host no contêiner e criar usuários, é necessário tomar cuidado para evitar conflitos de permissões.

Agora, podemos iniciar o contêiner PostgreSQL com o seguinte comando:

docker run -d \
--name nome-do-container \
--restart unless-stopped \
-e POSTGRES_USER=dbuser \
-e POSTGRES_PASSWORD=sua-senha \
-e POSTGRES_DB=sua-DB \
-p 5432:5432 \
-v nome-do-volume:/var/lib/postgresql/data \
postgres && docker ps
docker-run-2048x501
Screenshot 5 — Docker Run

Explicação dos parâmetros usados no comando:

  • POSTGRES_USER – nome de usuário do banco de dados (conta usada no serviço no SO);
  • POSTGRES_PASSWORD – senha da conta do banco de dados;
  • POSTGRES_DB – nome do banco de dados;
  • -p – redirecionamento de portas do host para o contêiner (host:container);
  • -v – criação de um volume virtual para armazenar os dados do serviço.

A imagem do contêiner criará automaticamente um usuário e executará o banco de dados PostgreSQL com as configurações fornecidas. Agora, o contêiner (ou o processo restrito) se torna um espaço isolado que aceita chamadas de rede na porta 5432.
Isso significa que o servidor pode ser acessado via conexão de rede a partir de um dispositivo remoto, usando o endereço IP da máquina host e a porta encaminhada. Para verificar se o serviço está disponível, utilize o seguinte comando:

netstat -tulnp
start-2048x505
Screenshot 6 — Socket

Conectando-se ao PostgreSQL no contêiner

Também podemos testar a conexão executando o cliente psql dentro do próprio contêiner:

docker exec -it nome-do-container psql -U dbuser -d sua-DB
connect
Screenshot 7 — Connection

Ótimo, a conexão foi estabelecida! Agora podemos gerenciar o servidor de banco de dados, que está isolado do ambiente principal do sistema operacional.

Removendo o contêiner

Se for necessário parar e remover o contêiner e seus dados, execute o seguinte comando:

docker stop name-of-container && docker remove name-of-container && docker image remove postgres && docker volume remove name-of-volume
remove
Screenshot 8 — Remove container

Após essa operação, o contêiner, a imagem e os dados armazenados serão completamente removidos.

Caso seja necessário reinstalar a imagem, o comando docker volume rm nome-do-volume pode ser omitido para preservar os bancos de dados já criados.

Neste artigo, demonstramos um método passo a passo para implantar um ambiente de contêiner utilizando uma imagem de banco de dados PostgreSQL.

Esse método delimita o espaço entre diferentes serviços, garantindo mais segurança, integridade dos dados e evitando conflitos entre dependências no sistema.

Avaliação:
4 fora de 5
Аverage rating : 4.7
Avaliado por: 3
CEP 01311-930 São Paulo Avenida Paulista, nº 1765, 7º andar, Cj. 72, CV 10172, Bela Vista
+ 55 11 5118-1047
ITGLOBAL.COM BR LTDA

Você também pode gostar...

Usamos cookies para melhorar sua experiência no Serverspace. Ao continuar a navegar em nosso site, você concorda com o Uso de Cookies e com a Política de Privacidade.