Um ecossistema Dockerizado para estudos em Data Science, integrando ferramentas essenciais para análise de dados, visualização e monitoramento. Este ambiente foi projetado para ser simples, replicável e acessível, mesmo para usuários iniciantes.
- Jupyter Notebook: Para análise de dados e machine learning.
- PostgreSQL: Banco de dados relacional para armazenamento estruturado.
- MetaBase: Ferramenta de BI open source para criação de dashboards.
- Grafana + Prometheus: Para monitoramento e observabilidade.
/docker-data-science
├── README.md # Documentação principal do projeto
├── docker-compose.yml # Arquivo principal para orquestrar todos os serviços
├── jupyter/ # Configuração do Jupyter Notebook
├── postgres/ # Configuração do PostgreSQL
├── metabase/ # Configuração do MetaBase
├── grafana/ # Configuração do Grafana
├── prometheus/ # Configuração do Prometheus
└── volumes/ # Diretório centralizado para persistir dados
Antes de iniciar, certifique-se de que você tem os seguintes softwares instalados:
- Docker: Guia de Instalação
- Docker Compose: Já incluído no Docker Desktop ou disponível separadamente.
Clone o repositório para sua máquina local:
git clone https://github.com/enps2015/docker-data-science.git
cd docker-data-scienceInicie todos os serviços com o comando:
docker-compose up -dNota: Isso pode levar alguns minutos na primeira vez, pois as imagens Docker serão baixadas.
Após iniciar os serviços, você pode acessar as interfaces no navegador:
- Jupyter Notebook: http://localhost:8888
- MetaBase: http://localhost:3000
- Grafana: http://localhost:3001
- Prometheus: http://localhost:9090
Para facilitar a configuração inicial do ambiente, criei um script automatizado (setup.sh) que verifica as dependências necessárias (Docker e Docker Compose), clona o repositório (se necessário) e inicia todos os serviços.
- Simplicidade: O script elimina a necessidade de executar comandos manuais.
- Confiabilidade: Ele garante que todas as etapas sejam seguidas corretamente.
- Rapidez: Em poucos minutos, você terá o ambiente pronto para uso.
- Certifique-se de que o
git,dockeredocker-composeestão instalados na sua máquina. - Faça o download do script:
wget https://github.com/enps2015/docker-data-science/blob/master/setup.sh
- Torne o script executável:
chmod +x setup.sh
- Execute o script:
./setup.sh
Após a execução, o ambiente estará disponível nos seguintes endereços:
- Jupyter Notebook: http://localhost:8888
- MetaBase: http://localhost:3000
- Grafana: http://localhost:3001
- Prometheus: http://localhost:9090
-
Abra o navegador e acesse:
http://localhost:8888 -
Se solicitado, insira o token de acesso. Para encontrar o token:
- Execute o seguinte comando no terminal:
docker logs jupyter
- Procure por uma linha como esta:
http://127.0.0.1:8888/?token=abcdef1234567890abcdef1234567890abcdef1234 - Copie o valor após
token=e cole-o no navegador.
- Execute o seguinte comando no terminal:
-
Agora você pode criar e executar scripts Python no Jupyter Notebook.
O PostgreSQL já está configurado com um banco de dados inicial (data_science) e um usuário (user).
-
Para testar a conexão, conecte-se ao PostgreSQL via terminal:
docker exec -it postgres psql -U user -d data_science -
Execute uma consulta para verificar as tabelas:
\dt
-
Consulte os dados (se houver):
SELECT * FROM sales;
-
Abra o navegador e acesse:
http://localhost:3000 -
Na tela inicial, siga estas etapas:
- Escolha "Let's get started".
- Selecione "PostgreSQL" como o tipo de banco de dados.
- Preencha os campos da conexão:
- Nome:
Data Science DB - Host:
postgres(nome do serviço nodocker-compose.yml) - Porta:
5432(porta padrão do PostgreSQL) - Banco de Dados:
data_science - Usuário:
user - Senha:
password
- Nome:
-
Clique em "Save" ou "Test Connection" para confirmar a conexão.
-
Após conectar, explore os dados criando dashboards no MetaBase.
-
Abra o navegador e acesse:
http://localhost:3001 -
Insira as credenciais padrão:
- Usuário:
admin - Senha:
admin
- Usuário:
-
Altere a senha inicial quando solicitado.
-
Conecte o Grafana ao Prometheus:
- No menu lateral, clique em "Configuration" (engrenagem) > "Data Sources".
- Clique em "Add data source".
- Selecione "Prometheus".
- Em "HTTP", insira a URL:
http://prometheus:9090 - Clique em "Save & Test" para confirmar a conexão.
-
Importe dashboards pré-configurados ou crie seus próprios gráficos.
-
Abra o navegador e acesse:
http://localhost:9090 -
Use o Prometheus para monitorar métricas dos contêineres. Por exemplo:
- Pesquise por métricas como
uppara verificar o status dos serviços.
- Pesquise por métricas como
Para garantir que todos os componentes do ambiente estão conectados e funcionando corretamente, criei um guia prático com instruções passo a passo. Este guia inclui testes para verificar as conexões entre o Jupyter Notebook, PostgreSQL, MetaBase, Grafana e Prometheus.
Se você é novo no projeto ou quer ter certeza de que tudo está configurado corretamente, recomendamos que siga o tutorial disponível no arquivo TESTES.md.
Os testes são simples e fáceis de realizar, mesmo para iniciantes. Eles garantem que você possa explorar o ambiente com tranquilidade e confiança.
Convide seus neurônios a fazer os testes! 😉
- Erro ao acessar o token:
- Verifique os logs do contêiner:
docker logs jupyter
- Certifique-se de copiar o token correto.
- Verifique os logs do contêiner:
- Tabela não encontrada:
- Certifique-se de que o arquivo
init.sqlexiste e está correto. - Remova o volume persistente e reinicie os serviços:
docker-compose down -v docker-compose up -d
- Certifique-se de que o arquivo
- Erro ao acessar o Grafana:
- Verifique se o diretório
./volumes/grafanatem permissões corretas:sudo chown -R 472:472 ./volumes/grafana
- Reinicie os serviços:
docker-compose down docker-compose up -d
- Verifique se o diretório
Abaixo estão algumas capturas de tela das interfaces disponíveis no ambiente Dockerizado. Essas imagens dão uma ideia visual de como cada ferramenta funciona.
Uma interface interativa para análise de dados e machine learning.
Um dashboard intuitivo para visualização de dados do PostgreSQL.
Gráficos dinâmicos para monitoramento e observabilidade.
Uma interface para consultar métricas coletadas pelo sistema.
Observação: Para acessar essas interfaces, siga as instruções no início deste documento.
Se você encontrar problemas ou tiver sugestões, sinta-se à vontade para abrir uma issue ou pull request no GitHub.
Desenvolvido por:
Que a Força dos Dados esteja com você! 🚀 ✨




