Como instalar o PostgreSQL e phpPgAdmin no Docker

Nesse tutorial, você vai aprender como instalar o PostgreSQL e phpPgAdmin no Docker! Você aprenderá como criar e rodar Containers no Docker. Também vamos utilizar ferramentas do próprio Docker para criar redes e permitir a comunicação entre containers. Além disso, aprenderá também a criar volume no Docker para persistir dados. E tudo isso na prática, enquanto você aprende criando containers com o PostgreSQL e phpPgAdmin no Docker

Este tutorial também possuí sua versão em vídeo no Canal da Homehost no Youtube!

Tópicos

O que são o PostgreSQL, o phpPgAdmin e o Docker?

PostgreSQL e phpPgAdmin

O PostgreSQL, é um sistema de gerenciamento de Banco de Dados Relacional, baseado no Postgres. O PostgreSQL é uma ferramenta OpenSource que ganhou bastante popularidade e vem sendo cada vez mais utilizado até mesmo no mundo Corporativo. Isso se deve a diversas características, dentre elas sua confiabilidade, performance, comunidade, recursos modernos, etc. Portanto, é uma ótima opção de Banco de Dados. Em geral, possuí uma sintaxe similar a outros bancos relacionais SQL, como o MariaDB e o MySQL. Você pode conhecer mais sobre o PostgreSQL no seu Site Oficial.

O phpPgAdmin é uma ferramenta para administração e gerenciamento de Banco de Dados Postgres baseado em php. Ou seja, ele facilita a interação com um banco de dados PostgreSQL. Ele é muito parecido com o phpMyAdmin.

Docker

O Docker é uma ferramenta que vem ganhando cada vez mais destaque entre os desenvolvedores. O Docker facilita o desenvolvimento, implantação e execução de aplicações e serviços através de ambientes isolados. Dessa forma, permite gerenciar a infraestrutura de uma aplicação de maneira simples e fácil.

Ou seja, através do Docker, você pode desenvolver e executar aplicações em ambientes isolados e independentes do ambiente utilizado. Para isso, ele utiliza Containers, que são ambientes isolados de uma ou mais imagens Dockers. Portanto, podemos reproduzir esta mesma aplicação em diversas plataformas, de diferentes portes. Ou seja, se sua aplicação está funcionando corretamente em um ambiente com Docker, então essa mesma aplicação funcionará em qualquer outro ambiente, seja outra máquina, servidor, etc. Isso é possível pois os containers do Docker são isolados a nível de disco, memória e processamento de rede.

Entender isso é muito importante para aprender como instalar e executar o PostgreSQL e o phpPgAdmin no Docker!

Conheça mais sobre Containers Docker e sobre DockerHub

Segundo a descrição do próprio Docker sobre o que são containers:

Um container é uma unidade padrão de software que empacota o código e todas as suas dependências para que o aplicativo seja executado de forma rápida e confiável de um ambiente de computação para outro.

Um Container gera uma imagem em tempo de execução. Já uma Imagem Docker, vai gerar um ou mais containers especificados e necessários para rodar as aplicações contidas na imagem.

Você pode iniciar um containers através de imagens, definidas manualmente por você. Porém, também é possível executar um containers através de imagens definidas por terceiros. Dessa forma, existe um acervo amplamente utilizado, contendo imagens Docker já pré-definidas. Esse acervo de imagens Docker é o DockerHub.

No DockerHub, podemos encontrar diversas imagens prontas para utilizarmos! Por exemplo, nesse tutorial vamos utilizar a imagem da Bitnami do PostgreSQL para criar o nosso container com o PostgreSQL.

Instalação do PostgreSQL e phpPgAdmin no Docker

Pré-requisitos

Antes de iniciarmos o tutorial, é necessário que você já possua o Docker instalado em sua máquina. Portanto, se você ainda não possuí, realize o download e instalação do Docker ou Docker Desktop através da Página “Get Started” do Docker.

Independente se você utilizar Linux, Mac ou Windows, os processos descritos aqui serão os mesmos.

O Docker Desktop é uma ferramenta visual que permite interagirmos com o Docker. Entretanto, vamos utilizar os comandos através do terminal do nosso sistema para interagir com Docker.

Também é importante que você tenha conhecimentos básicos sobre linha de comandos no terminal.

Primeiro Passo: Criando uma Rede interna no Docker

Antes de instalarmos o PostgreSQL e o phpPgAdmin no Docker, vamos iniciar uma rede interna. Essa rede interna será responsável pela comunicação dos nossos serviços. Ou seja, através de uma rede, vamos permitir que o container com o PostgreSQL se comunique com o container com o phpPgAdmin e vice versa.

Portanto, para criar uma rede no Docker, digite o comando abaixo no seu terminal:

docker network create REDE1

Observe que nos comandos acima, criamos uma rede com o nome de “REDE1”. Entretanto, você pode utilizar o nome que desejar para a rede. Mas é importante e recomendado que mantenha o nome todo em maiúsculo ou todo em minúsculo.

Para listarmos as redes disponíveis em nosso Docker podemos utilizar o comando:

docker network list

Segundo passo: Criando o volume no Docker

O volume servirá para realizarmos a persistência dos dados do PostgreSQL no nosso Docker. Ou seja, com o volume, podemos manter nossos dados salvos em nossa máquina de forma separada e segura.

Portanto, para criarmos um volume vamos utilizar o comando:

docker volume create VOL1

Assim como no caso das redes, o nome que demos ao nosso volume é “VOL1”, porém você pode nomear da forma que desejar.

Para listar os volumes disponíveis no Docker, utilizamos o comando:

docker volume list

Terceiro Passo: Baixar a imagem do PostgreSQL e criar um container no Docker para ele

Para instalar o PostgreSQL no Docker, vamos utilizar a imagem da Bitnami do PostgreSQL, disponível no Dockerhub. Escolhemos esta imagem ao invés da oficial do PostgreSQL para que possamos utilizar em conjunto com a imagem do phpPgAdmin.

Portanto, utilize o terminal e realize os seguintes comandos para criar o container do PostgreSQL no Docker:

docker run -d --name postgresql -e POSTGRES_USER=usuario -e POSTGRES_PASSWORD=senha1234 --network REDE1 --volume VOL1 bitnami/postgresql:latest

O comando –name refere-se ao nome do container. Você pode optar por criar com o nome que preferir. Entretanto, em nosso exemplo, utilizamos o nome “postgresql “.

Os comandos -e definem as variáveis de ambientes que serão aplicadas na instalação. No nosso caso, criamos 2 variáveis de ambiente que serão atribuídas ao nosso PostgreSQL na instalação:

  • POSTGRES_USER– Definimos o nome de usuário do PostgreSQL
  • POSTGRES_PASSWORD– Definimos a senha de acesso ao PostgreSQL

O comando –network refere-se a nossa rede. Portanto vamos utilizar a rede criada no nosso 1º passo, ou seja a REDE1.

o comando –volume refere-se ao volume. Portanto, você pode utilizar o volume criado no 2º passo seguido do diretório que vamos utilizar (“VOL1:/bitnami“). Por padrão costumamos utilizar o diretório /bitnami para o PostgreSQL.

Por fim, definimos qual é a imagem que vamos utilizar. Portanto, basta buscar no DockerHub pela imagem desejada. Ou seja, buscaremos pela imagem do PostgreSQL. Conforme comentamos inicialmente, ao invés de utilizarmos a versão oficial, utilizaremos a versão da bitnami, que nos permite fácil integração com o phpPgAdmin. Utilizaremos o nome especificado em sua documentação no dockerhub, na sua última versão: “bitnami/postgresql:latest“. Caso você prefira utilizar a imagem oficial, utilize a imagem “postgresql”, também disponível no dockerHub.

Para inspecionarmos o nosso container, podemos utilizar o comando “docker inspect” seguido do nome do container que desejamos inspecionar. Ou seja, em nosso exemplo, podemos utilizar o comando abaixo:

docker inspect postgresql

Quarto Passo: Baixar a imagem do phpPgAdmin e criar um container no docker para ele

Após instalar o PostgreSQL no Docker, vamos agora instalar o phpPgAdmin. Ou seja, o serviço que servirá para gerenciarmos o nosso banco de dados de forma prática, rápida e visual!

Portanto, utilize o terminal e realize os seguintes comandos para criar o container do phpPgAdmin no docker:

docker run -d --name phppgadmin --network REDE1 -p 8080:80 -p 443:8443 bitnami/phppgadmin:latest

Observe que alguns comandos já foram explicados no passo anterior. Portanto, definimos como nome do nosso container “phppgadmin “. Também definimos a rede como REDE1.

O comando -p serve para definirmos a porta em que nosso serviço vai rodar. O phpPgAdmin contém um pequeno webserver que roda na porta 80. Portanto, atribuímos as portas externas (que será utilizada no nosso navegador) 8080 e 443.

Por fim, referenciamos a imagem desejada. Portanto, vamos utilizar a imagem do phpPgAdmin da Bitnami, encontrada no dockerhub: “bitnami/phppgadmin:latest“.

Quinto passo: Acessando o phpMyAdmin e conectando ao PostgreSQL no Docker

Se você chegou nessa etapa, significa que você já conseguiu realizar a instalação do PostgreSQL e do phpPgAdmin no Docker! Portanto, agora você pode acessar o painel do phpPgAdmin para gerenciar o Banco de Dados.

Abra o seu navegador e utilize o endereço local. Em nosso exemplo, acessamos o painel do phpPgAdmin do Docker através do endereço “localhost“. Porém, caso não consiga acessar dessa forma, utilize a porta definida no passo anterior, por exemplo: “localhost:8080“.

Pagina de acesso do phpPgAdmin, no Docker

Em seguida, clique sobre o servidor desejado, no caso, em “PostgreSQL”

Acessando o servidor PostgreSQL com o phpPgAdmin no Docker.

Como dados de acesso, devemos então utilizar os dados especificadas nas variáveis de ambiente que definimos ao criarmos o container Docker do PostgreSQL. Ou seja, você deve utilizar o usuário e a senha especificadas nas variáveis “POSTGRES_USER” e “POSTGRES_PASSWORD“. Portanto, no nosso exemplo, o usuário é “usuario” e a senha é “senha1234”. Por fim, basta clicar no botão “Identificação”.

Fazendo Login no phpPgAdmin

Conclusão

Com esse tutorial, você pode perceber que utilizar o Docker traz diversas vantagens e agiliza no processo de desenvolvimento de aplicações! Seguindo cada passo demonstrado aqui, você realizou a instalação do PostgreSQL e do phpPgAdmin no Docker! O melhor de tudo é que, além de rodar na sua máquina, com o Docker, você garante que a aplicação vai rodar da mesma forma em qualquer ambiente e servidor. Além disso, graças ao recurso de “volume”, você consegue realizar persistência desses dados. Portanto, podemos rodar uma aplicação com o Docker em um servidor profissional à nível de produção!

Existe muito do Docker para ser explorado, entretanto, agora você já sabe o básico e é capaz de criar containers com o PostgreSQL e phpPgAdmin com o Docker.

Para avançar nos seus conhecimentos sobre Docker, recomendamos que você acompanhe nossas publicações. Entretanto, também recomendamos a leitura do tutorial “Get Started” da documentação oficial do Docker, que contém diversos exemplos e explicações para quem está começando com o Docker.

Este artigo foi útil?

Obrigado pela resposta!
Rafael Marques

Rafael Marques

Especialista em Desenvolvimento Web e Marketing. É apaixonado por tecnologia, empreendedorismo, audiovisual e animais. Em sua carreira, dedica-se ao empreendedorismo, além de atuar como Desenvolvedor Fullstack e redator técnico. Gosta de usar seu tempo livre para assistir a filmes, jogar, escrever, e passar um bom tempo brincando e mimando seus animais de estimação.

Contato: rafael.blog@homehost.com.br

Ganhe 30% OFF

Indique seu nome e e-mail,e ganhe um cupom de desconto de 30% para sempre na Homehost!