No melhor dos mundos, sempre estamos gerenciando nossos projetos pessoais em ambientes virtuais (salve o bom e velho venv rs), com gerenciadores como Poetry e UV. No entanto, de vez em quando, precisamos ir além.
O Desafio
Quando queremos expor diferentes serviços em algumas portas, pode ficar difícil gerenciar tantas abas no terminal Linux. Como resolver essa situação? A resposta é simples e direta: com Docker!
Imagens Docker para Jupyter
Hoje é dia é possível encontrar imagens Docker oficiais para o Jupyter, que podem ser encontradas através desse link
Neste tutorial, usaremos a versão da imagem para SciPy, adicionando alguns ingredientes extras como Optuna e MLFlow.
Estrutura do Diretório
Antes de começarmos, vamos criar a estrutura de diretório necessária. Abaixo está como ficará a árvore de diretórios:
projeto/ ├── notebooks/ ├── requirements.txt ├── start.sh └── Dockerfile
Configurações Extra do Contêiner
Para temperar o contêiner ao seu gosto, você precisará dos seguintes arquivos:
1. requirements.txt
Este arquivo contém as bibliotecas que você deseja instalar:
xgboost lightgbm catboost optuna mlflow
2. start.sh
Um script para iniciar os serviços necessários:
#!/bin/bash mlflow ui --host 0.0.0.0 --port 5000 & jupyter lab --ip=0.0.0.0 --port=8888 --no-browser --allow-root
3. Dockerfile
O arquivo Dockerfile que define como construir a imagem:
FROM jupyter/scipy-notebook:latest COPY start.sh /home/jovyan/start.sh COPY requirements.txt . COPY ./notebooks /home/jovyan/work/notebooks USER root RUN chmod +x /home/jovyan/start.sh USER jovyan RUN pip install --no-cache-dir --upgrade pip && \ pip install --no-cache-dir -r requirements.txt WORKDIR /home/jovyan/work EXPOSE 8888 EXPOSE 5000 CMD ["/home/jovyan/start.sh"]
Passo a Passo para Configuração
Agora que você tem todos os arquivos, siga os passos abaixo para configurar seu ambiente:
- Crie a pasta local
notebooks/
. Aqui você pode desenvolver seus notebooks no VS Code e já subí-los pro Jupyter ou criar no Jupyter mesmo e salvar. - Construa a imagem Docker:
docker build -t ml-jupyter .
- Rode o container montando a pasta:
docker run -p 8888:8888 -p 5000:5000 -v "$(pwd)/notebooks":/home/jovyan/work ml-jupyter
- Acesse o Jupyter pelo navegador (link no terminal).
Lembre-se que tudo que for salvo no Jupyter estará disponível na sua pasta local, inclusive arquivos com os artefatos do modelo gerados pelo MLFlow.
Agora sim, podemos dar vida aos projetinhos pessoais sem perder nenhum detalhe!
Referências
Imagens Docker Disponíveis no Jupyter
MLflow with Optuna: Hyperparameter Optimization and Tracking
Top comments (0)