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

Se você usa Windows, o Windows Subsystem for Linux (WSL) oferece uma maneira poderosa de rodar um ambiente Linux dentro do Windows. Neste tutorial, você aprenderá a configurar um container Docker no WSL para rodar Python, Jupyter Notebook, Scikit-learn e Keras. Essa configuração é excelente para profissionais de ciência de dados que trabalham no Windows, mas preferem o ambiente de desenvolvimento Linux.

Pré-requisitos

Antes de começar, certifique-se de ter as seguintes ferramentas instaladas no seu sistema:

  1. WSL 2 configurado no Windows 10 ou 11 (Guia de Instalação).
  2. Docker Desktop para Windows (Baixar Docker Desktop).
  3. Ubuntu (ou outra distro Linux) rodando via WSL.

Passo 1: Instalar Docker no WSL

Depois de instalar o Docker Desktop no Windows, é necessário configurar o Docker para trabalhar dentro do WSL.

  1. Abra o Docker Desktop e vá até as Configurações.
  2. Selecione a opção WSL Integration.
  3. Marque a distribuição Linux que você deseja usar (normalmente, Ubuntu).
  4. Certifique-se de que o Docker está rodando.

Com isso, o Docker estará disponível dentro do seu ambiente WSL.

Verificar a instalação do Docker no WSL

Abra o terminal do WSL (Ubuntu) e digite:

docker --version

Se o Docker estiver instalado corretamente, você verá a versão instalada.

Passo 2: Criar um Dockerfile

Agora, vamos configurar o container para rodar Python, Jupyter Notebook, Scikit-learn e Keras.

  1. No terminal do WSL, crie um diretório para o projeto:
mkdir python-datascience
cd python-datascience
  1. Dentro do diretório, crie um arquivo chamado Dockerfile:
nano Dockerfile
  1. Adicione o seguinte conteúdo ao Dockerfile:
# Usar uma imagem base oficial do Python
FROM python:3.9

# Definir o diretório de trabalho no container
WORKDIR /usr/src/app

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

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

# Expor a porta para o Jupyter Notebook
EXPOSE 8888

# Definir o comando padrão para iniciar 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 com Python 3.9.
  • WORKDIR /usr/src/app: Define o diretório de trabalho no container.
  • RUN apt-get update ...: Instala pacotes de compilação e dependências do sistema.
  • RUN pip install: Instala Jupyter Lab, Scikit-learn, Keras e TensorFlow.
  • EXPOSE 8888: Expõe a porta 8888, usada pelo Jupyter.
  • CMD: Define o comando para iniciar o Jupyter Notebook automaticamente.

Passo 3: Construir a Imagem Docker

Agora, dentro do diretório onde o Dockerfile foi criado, você pode construir a imagem Docker.

Comando para construir a imagem:

docker build -t python-datascience .

Neste comando:

  • -t python-datascience: Nome da imagem a ser construída.
  • O ponto (.) refere-se ao diretório atual, onde o Dockerfile está localizado.

Passo 4: Executar o Container Docker

Uma vez que a imagem Docker está pronta, você pode iniciar 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 container para a mesma porta no host, permitindo que você acesse o Jupyter Notebook via navegador.
  • -v $(pwd):/usr/src/app: Monta o diretório atual do WSL no container.
  • -it: Inicia o container em modo interativo.

Passo 5: Acessar o Jupyter Notebook

Quando o container for iniciado, 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 do Windows. Agora, você terá acesso ao Jupyter Notebook rodando dentro do WSL, com Python, Scikit-learn e Keras instalados.

Passo 6: Salvar e Compartilhar a Imagem Docker

Se você quiser salvar ou compartilhar sua imagem Docker com outros, você pode fazer isso com os comandos abaixo.

Para salvar a imagem localmente:

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

Para enviar a imagem para o Docker Hub:

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

Agora você tem um container Docker configurado para rodar Python, Jupyter Notebook, Scikit-learn e Keras em um ambiente WSL no Windows! Este ambiente oferece uma solução flexível e eficiente para trabalhar com ciência de dados, garantindo portabilidade e fácil configuração.

Edvaldo Guimrães Filho Avatar

Published by

Categories:

Leave a comment