🐳 Guia Completo do Docker¶
1. Introdução¶
Docker é uma plataforma que permite criar, empacotar e executar aplicações em contêineres — ambientes isolados e portáteis com todas as dependências da aplicação.
1.1. Conceitos Fundamentais¶
1.1.1. Imagem Docker¶
Pacote leve e imutável com tudo o que a aplicação precisa para rodar: código, runtime, libs e configs.
1.1.2. Contêiner Docker¶
Instância de uma imagem em execução. Isolado, mas compartilhando recursos com o host.
1.1.3. Dockerfile¶
Script com instruções para gerar uma imagem.
1.1.4. Docker Compose¶
Ferramenta para orquestrar múltiplos contêineres via arquivo YAML.
1.1.5. Volumes¶
Permitem persistência de dados e compartilhamento entre contêiner e host.
1.2. Comandos Essenciais¶
1.2.1. Gerenciamento de Contêineres¶
docker run -it ubuntu bash
docker ps
docker ps -a
docker start <container_id>
docker stop <container_id>
docker rm <container_id>
1.2.2. Imagens¶
docker pull ubuntu
docker images
docker rmi <image_id>
docker build -t nome_imagem .
1.2.3. Dockerfile (Exemplo)¶
FROM ubuntu
RUN apt update && apt install -y python3
CMD ["python3"]
1.2.4. Volumes¶
docker volume create nome_volume
docker volume ls
docker run -v nome_volume:/caminho ubuntu
1.2.5. Redes¶
docker network ls
docker network create nome_rede
docker network connect nome_rede container
1.2.6. Docker Compose¶
docker-compose up # Inicia todos os serviços definidos no docker-compose.yml e mostra os logs no terminal
docker-compose up -d # Inicia os serviços em segundo plano (modo *detached*)
docker-compose down # Para os serviços e remove containers, redes e configurações definidas no docker-compose.yml
docker-compose down -v # Mesmo que o anterior, mas também remove os volumes nomeados, apagando dados persistentes
2. Exemplos Práticos¶
2.1. Montar um volume com Jupyter + PySpark¶
docker run -p 8888:8888 -v C:\Users\esped\Documents\Respositorio_git\Repositorio_projetos\image_spark_project:/home/jovyan/work jupyter/pyspark-notebook:spark-3.3.2
Análise:¶
-p 8888:8888
: mapeia porta do host para o contêiner.-v caminho_host:/home/jovyan/work
: monta volume persistente.jupyter/pyspark-notebook:spark-3.3.2
: imagem com suporte a PySpark e Jupyter.
3. Integração Docker + Poetry no Jupyter¶
3.1. Objetivo¶
Utilizar o ambiente virtual do Poetry como kernel do Jupyter Notebook.
3.2. Passo a Passo¶
3.2.1. Verificar Kernels Disponíveis¶
jupyter kernelspec list
3.2.2. Instalar ipykernel no ambiente do Poetry¶
poetry add ipykernel
3.2.3. Adicionar Kernel ao Jupyter¶
python -m ipykernel install --user --name=image-spark-project-py3.10 --display-name "Python (Poetry)"
--name
: nome interno do kernel--display-name
: nome visível no Jupyter
3.3. Selecionar Kernel no Jupyter¶
- Vá em Kernel > Change Kernel
- Escolha Python (Poetry)
4. Resumo Final¶
✅ Docker cria ambientes isolados
✅ Docker Compose orquestra múltiplos contêineres
✅ Poetry pode ser integrado ao Jupyter via kernel dedicado
✅ Volumes permitem persistência de dados entre host e contêiner