Como Criar um Container Docker para Rodar Python, Jupyter Notebook, Scikit-learn e Keras

Neste tutorial, você aprenderá como criar e configurar um container Docker para rodar um ambiente de ciência de dados completo, incluindo Python, Jupyter Notebook, Scikit-learn e Keras. Esse setup é ideal para cientistas de dados e engenheiros que precisam de um ambiente portátil, padronizado e fácil de configurar.

Requisitos

Antes de começar, você precisa ter os seguintes itens instalados:

  1. Docker
  2. Um editor de texto, como o VSCode

Passo 1: Criar um Arquivo Dockerfile

O primeiro passo é criar um arquivo Dockerfile, que será usado para configurar o ambiente do container. Esse arquivo conterá todas as instruções necessárias para instalar o Python, Jupyter Notebook, Scikit-learn e Keras.

Conteúdo do Dockerfile

# Escolhe uma imagem base oficial do Python
FROM python:3.9

# Define o diretório de trabalho dentro do container
WORKDIR /usr/src/app

# Instala as dependências do sistema necessárias
RUN apt-get update && \
    apt-get install -y --no-install-recommends \
    build-essential \
    && rm -rf /var/lib/apt/lists/*

# Instala Jupyter, Scikit-learn e Keras
RUN pip install --no-cache-dir jupyterlab scikit-learn keras tensorflow

# Exponha a porta usada pelo Jupyter Notebook
EXPOSE 8888

# Define o comando padrão para rodar o Jupyter Notebook
CMD ["jupyter", "notebook", "--ip=0.0.0.0", "--port=8888", "--no-browser", "--allow-root"]

Explicação dos Comandos

  • FROM python:3.9: Utiliza uma imagem base oficial do Python 3.9.
  • WORKDIR /usr/src/app: Define o diretório de trabalho.
  • RUN apt-get update && ...: Instala pacotes essenciais de build.
  • RUN pip install: Instala o Jupyter Lab, Scikit-learn, Keras e TensorFlow.
  • EXPOSE 8888: Expõe a porta 8888 para acesso ao Jupyter Notebook.
  • CMD: Inicia o Jupyter Notebook quando o container for iniciado.

Passo 2: Construir a Imagem Docker

Com o arquivo Dockerfile criado, o próximo passo é construir a imagem Docker.

Comando para construir a imagem:

docker build -t python-datascience .

Neste comando:

  • -t python-datascience: Define o nome da imagem como python-datascience.
  • O ponto (.) no final indica o diretório atual, onde está localizado o Dockerfile.

Passo 3: Rodar o Container

Agora, com a imagem criada, você pode rodar o container.

Comando para rodar o container:

docker run -p 8888:8888 -v $(pwd):/usr/src/app -it python-datascience

Neste comando:

  • -p 8888:8888: Mapeia a porta 8888 do host para o container, permitindo o acesso ao Jupyter.
  • -v $(pwd):/usr/src/app: Monta o diretório atual no host para o diretório de trabalho no container.
  • -it: Permite interação com o terminal do container.

Quando o container iniciar, o terminal exibirá uma URL para acessar o Jupyter Notebook, algo como:

http://127.0.0.1:8888/?token=seu_token_aqui

Abra essa URL no navegador para começar a usar o Jupyter com Python, Scikit-learn e Keras!

Passo 4: Salvando e Compartilhando sua Imagem

Se você quiser salvar e compartilhar sua imagem Docker, você pode empurrar para o Docker Hub.

Comando para salvar sua imagem localmente:

docker save -o python-datascience.tar python-datascience

Comando para fazer o push para o Docker Hub:

  1. Primeiro, faça login no Docker:
docker login
  1. Marque a imagem com seu nome de usuário do Docker Hub:
docker tag python-datascience seu_usuario/python-datascience:latest
  1. Empurre a imagem para o Docker Hub:
docker push seu_usuario/python-datascience:latest

Agora você tem um container Docker que roda Python, Jupyter Notebook, Scikit-learn e Keras! Esse ambiente é portátil, replicável e facilita a configuração para projetos de ciência de dados.

Edvaldo Guimrães Filho Avatar

Published by

Categories:

Leave a comment