Configure um servidor PostgreSQL e pgadmin com Docker

Configure um servidor PostgreSQL e pgadmin com Docker
Neste artigo, vou mostrar como usar o Docker Compose para criar um contêiner PostGresql e acessá-lo usando o PGADMIN 4, a interface admin do PostGresql baseada na Web. Também mostrarei como acessar o servidor de banco de dados PostGresql em execução em um contêiner do Docker do DataGrip IDE. Então vamos começar.

Requisitos:

Para seguir este artigo, você deve ter o Docker instalado no seu computador. Linuxhint tem muitos artigos que você pode seguir para instalar o docker na distribuição Linux desejada, se você ainda não o instalou. Então, verifique o Linuxhint.com o caso de você estar tendo problemas para instalar o docker.

Instalando o docker compor:

Você pode fazer o download do docker compor o arquivo binário com muita facilidade com o seguinte comando:

$ sudo curl -l "https: // github.com/docker/compor/liberações/download/1.24.1//
Docker-Compose-$ (uname -s)-$ (uname -m) "-o/usr/local/bin/Docker-Comppose

OBSERVAÇÃO: ondulação não pode ser instalado em sua distribuição Linux. Se for esse o caso, você pode instalar o CURL com o seguinte comando:

Ubuntu/Debian/Linux Mint:

$ sudo apt install curl -y

CENTOS/RHEL/FEDORA:

$ sudo dnf install curl -y

Uma vez Docker-Compose O arquivo binário é baixado, execute o seguinte comando:

$ sudo chmod +x/usr/local/bin/docker-comp

Agora, verifique se Docker-Compose O comando está funcionando da seguinte maneira:

Versão $ Docker-Compose

Ele deve imprimir as informações da versão, conforme mostrado na captura de tela abaixo.

Configurando o Docker compor para o projeto:

Agora, crie um diretório de projeto (digamos ~/Docker/pgdev) do seguinte modo:

$ mkdir -p ~/docker/pgdev

Agora, navegue até o diretório do projeto ~/Docker/pgdev do seguinte modo:

$ cd ~/docker/pgdev

Agora, crie um Docker-Compose.Yaml arquivo no diretório do projeto ~/docker/pgdev e digite as seguintes linhas no Docker-Compose.Yaml arquivo.

Versão: "3.7 "
Serviços:
DB:
Imagem: Postgres: 12.2
Reinicie: sempre
ambiente:
PostGres_DB: PostGres
PostGres_User: Admin
PostGres_Password: segredo
Pgdata:/var/lib/postgreSql/dados
volumes:
- db-data:/var/lib/postgreSql/dados
Portas:
- "5432: 5432"
pgadmin:
Imagem: DPAGE/PGADMIN4: 4.18
Reinicie: sempre
ambiente:
Pgadmin_default_email: [email protected]
Pgadmin_default_password: segredo
Pgadmin_listen_port: 80
Portas:
- "8080: 80"
volumes:
- pgadmin-data:/var/lib/pgadmin
Links:
- "DB: PGSQL-Server"
volumes:
DB-Data:
pgadmin-dados:

O Docker-Compose.Yaml o arquivo deve parecer o seguinte.

Aqui, eu criei 2 serviços dB e pgadmin.

dB Serviço vai executar o PostGres: 12.2 Imagem (de DockerHub) em um recipiente do docker.

pgadmin Serviço vai executar o dpage/pgadmin4: 4.18 Imagem (do DockerHub) em outro recipiente do Docker.

Em dB serviço, o Postgres_db, PostGres_User, Postgres_password Variáveis ​​de ambiente são usadas para definir o nome do banco de dados padrão, nome de usuário do administrador e senha de usuário do administrador para o servidor PostgreSQL, respectivamente. O Pgdata A variável de ambiente é usada para configurar o servidor PostgreSQL para armazenar os dados para /var/lib/postgreSql/dados Diretório do contêiner.

Em pgadmin serviço, o Pgadmin_default_email, Pgadmin_default_password As variáveis ​​de ambiente são usadas para definir o email de login e a senha da interface da web pgadmin, respectivamente. O Pgadmin_listen_port é usado para definir a porta pgadmin 80 no recipiente.

No serviço DB, todo o conteúdo do /var/lib/postgreSql/dados diretório será salvo permanentemente no DB-Data volume.

No pgadmin serviço, todo o conteúdo do /var/lib/pgadmin diretório será salvo permanentemente no pgadmin-dados volume.

No dB serviço, a porta de contêiner 5432 (à direita) é mapeado para a porta host do Docker 5432 (esquerda).

No pgadmin serviço, a porta de contêiner 80 (à direita) é mapeado para a porta host do Docker 8080 (esquerda).

No pgadmin Serviço, um alias do nome do host PGSQL-SERVER para o dB O contêiner é criado. Então, você pode acessar o servidor PostgreSQL usando PGSQL-SERVER conforme o nome do host (nenhum endereço IP necessário).

Iniciando o servidor PostGresql e PGadmin:

Agora, para começar o dB e pgadmin Serviços, execute o seguinte comando:

$ Docker -Compõe Up -d

Os serviços devem começar em segundo plano.

Como você pode ver, a porta 8080 e 5432 são abertos pelo Docker-Proxy serviço.

$ sudo netstat -tlpn

Para ver como as portas são mapeadas, execute o seguinte comando:

$ Docker-Compor PS

Como você pode ver, para o dB Serviço, a porta host do docker 5432 é mapeado para a porta TCP do contêiner 5432.

Para o pgadmin Serviço, a porta host do docker 8080 é mapeado para a porta TCP do contêiner 80.

Acessando o PGadmin 4 ou o servidor PostgreSQL de outros computadores:

Se você deseja acessar o PGadmin 4 ou o PostgreSQL Database Server de outro computador em sua rede, você deve saber o endereço IP do seu host do Docker.

Para encontrar o endereço IP do seu host do Docker, execute o seguinte comando:

$ ip

No meu caso, o endereço IP do meu host do Docker 192.168.20.160. Vai ser diferente para você. Então, certifique -se de substituí -lo por seu a partir de agora.

Acessando o PGADMIN do navegador da web:

Agora, você pode acessar facilmente o pgadmin 4 do seu navegador da web.

Visite http: // localhost: 8080 do seu host do Docker ou http: // 192.168.20.160: 8080 de qualquer computador em sua rede. Você deve ver a página de login pgadmin. Faça login com seu e -mail e senha.

Depois de fazer o login, você deve ver o painel pgadmin.

Agora, para adicionar o servidor PostgreSQL em execução como um contêiner do docker, clique com o botão direito do mouse Servidores, E então vá para Criar > Servidor…

No Em geral guia, digite seu servidor Nome.

Agora, vá para o Conexão guia e digite PGSQL-SERVER como Nome/endereço do host, 5432 como Porta, PostGres como Banco de dados de manutenção, admin como Nome de usuário, segredo como Senha e verifique Salvar senha? Caixa de seleção. Em seguida, clique em Salvar.

pgadmin 4 deve estar conectado ao seu banco de dados PostGresql. Agora, você pode trabalhar com seu banco de dados PostGresql o quanto quiser.

Acessando o PostGresql do DataGrip:

Você também pode acessar seu servidor de banco de dados PostGresql da DataGrip IDE ou de qualquer outro IDES SQL.

Em caso de datagrip, clique em + de Bancos de dados seção e vá para Fonte de dados > PostGresql.

O driver PostgreSQL não pode ser instalado. Nesse caso, clique em Download.

O motorista deve ser instalado. Agora, digite o endereço IP do host do Docker 192.168.20.160 (no meu caso) como o Hospedar, 5432 Enquanto o Porta, admin Enquanto o Do utilizador, segredo Enquanto o Senha, PostGres Enquanto o Base de dados e clique em Conexão de teste.

Você deve ver os detalhes do servidor de banco de dados PostGresql se tudo funcionar.

Agora, clique em OK.

Agora, você pode gerenciar seus bancos de dados PostGresql do DataGrip.

Parando PostgreSQL e Pgadmin:

Agora, para parar o dB e pgadmin Serviços, execute o seguinte comando:

$ docker-compor para baixo

O dB e pgadmin Os serviços devem ser interrompidos.

Limpando dados PostgreSQL e PGADmin:

Se você deseja remover todos os dados e configurações do banco de dados PostGresql e todas as configurações de pgadmin, você deve remover o DB-Data e pgadmin-dados volumes.

Você pode encontrar o nome real dos volumes de dados com o seguinte comando:

$ docker volume ls

Como você pode ver, existem 2 volumes para o PGDEV projeto, PGDEV_DB-DATA e PGDEV_PGADMIN-DATA.

Você pode remover esses volumes com o seguinte comando:

$ docker volume rm pgdev_db-data pgdev_pgadmin-data

Referências:

[1] https: // hub.Docker.com/_/postgres?guia = Descrição
[2] https: // hub.Docker.com/r/dpage/pgadmin4/
[3] https: // www.pgadmin.org/docs/pgadmin4/mais recente/container_deployment.html