Introdução
Este tutorial abrangente do Docker fornece aos desenvolvedores e administradores de sistemas o conhecimento essencial para implementar a tecnologia de contêineres. Ao abordar conceitos fundamentais do Docker, procedimentos de instalação e exemplos práticos, os aprendizes adquirirão habilidades práticas na implantação moderna de software e técnicas de virtualização.
Fundamentos do Docker
Introdução aos Fundamentos do Docker
O Docker é uma poderosa tecnologia de contêineres que revoluciona a implantação de software e a virtualização de aplicativos. Ele permite que os desenvolvedores empacotem aplicativos com todas as suas dependências em unidades padronizadas chamadas contêineres.
Conceitos Principais da Tecnologia de Contêineres
graph LR
A[Imagem Docker] --> B[Contêiner]
B --> C[Implantação do Aplicativo]
B --> D[Isolamento]
| Conceito | Descrição |
|---|---|
| Imagem Docker | Pacote executável leve e autônomo |
| Contêiner | Instância executável de uma imagem |
| Dockerfile | Script que define a configuração da imagem |
Arquitetura Básica do Docker
Os contêineres fornecem virtualização leve compartilhando o kernel do sistema host, ao mesmo tempo que mantêm o isolamento do aplicativo. Essa abordagem difere das máquinas virtuais tradicionais.
Instalação no Ubuntu 22.04
## Atualizar o índice de pacotes
sudo apt update
## Instalar dependências
sudo apt install apt-transport-https ca-certificates curl software-properties-common
## Adicionar a chave GPG do Docker
curl -fsSL | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
## Configurar o repositório
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
## Instalar o Docker Engine
sudo apt update
sudo apt install docker-ce docker-ce-cli containerd.io
Primeiro Exemplo de Contêiner Docker
## Extrair a imagem Ubuntu
docker pull ubuntu:latest
## Executar o contêiner interativo
docker run -it ubuntu:latest /bin/bash
## Dentro do contêiner
apt update
apt install nginx -y
exit
Configuração do Ambiente Docker
Preparando o Ubuntu 22.04 para Instalação do Docker
graph LR
A[Atualização do Sistema] --> B[Instalação de Dependências]
B --> C[Configuração do Repositório Docker]
C --> D[Instalação do Docker Engine]
D --> E[Configuração do Docker]
Requisitos do Sistema
| Requisito | Especificação |
|---|---|
| SO | Ubuntu 22.04 LTS |
| Arquitetura | 64 bits |
| Kernel | 5.10+ |
| RAM | Mínimo 2 GB |
Script de Instalação Completo do Docker
## Atualizar pacotes do sistema
sudo apt update && sudo apt upgrade -y
## Remover pacotes conflitantes
sudo apt remove docker docker-engine docker.io containerd runc
## Instalar dependências necessárias
sudo apt install -y apt-transport-https ca-certificates curl gnupg lsb-release
## Adicionar a chave GPG oficial do Docker
curl -fsSL | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
## Configurar o repositório estável
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
## Instalar o Docker Engine
sudo apt update
sudo apt install -y docker-ce docker-ce-cli containerd.io
## Verificar a instalação
sudo docker --version
Configuração Pós-Instalação
## Criar o grupo de usuários docker
sudo groupadd docker
## Adicionar o usuário atual ao grupo docker
sudo usermod -aG docker $USER
## Habilitar o serviço Docker
sudo systemctl enable docker.service
sudo systemctl start docker.service
## Verificar a funcionalidade do docker
docker run hello-world
Instalação do Docker Compose
## Baixar o Docker Compose
sudo curl -L " -s)-$(uname -m)" -o /usr/local/bin/docker-compose
## Aplicar permissões executáveis
sudo chmod +x /usr/local/bin/docker-compose
## Verificar a instalação
docker-compose --version
Gerenciamento de Contêineres
Visão Geral do Ciclo de Vida do Contêiner
graph LR
A[Extração da Imagem] --> B[Criação do Contêiner]
B --> C[Início do Contêiner]
C --> D[Contêiner em Execução]
D --> E[Parada do Contêiner]
E --> F[Remoção do Contêiner]
Comandos Básicos do Docker para Contêineres
| Comando | Função |
|---|---|
| docker run | Criar e iniciar contêiner |
| docker ps | Listar contêineres em execução |
| docker stop | Parar contêiner em execução |
| docker rm | Remover contêiner |
| docker exec | Executar comando no contêiner |
Criação e Gerenciamento de Contêineres
## Extrair a imagem Ubuntu
docker pull ubuntu:latest
## Executar contêiner interativo
docker run -it --name my-ubuntu ubuntu:latest /bin/bash
## Listar todos os contêineres
docker ps -a
## Iniciar contêiner parado
docker start my-ubuntu
## Parar contêiner em execução
docker stop my-ubuntu
## Remover contêiner
docker rm my-ubuntu
Operações Avançadas com Contêineres
## Executar contêiner em segundo plano
docker run -d --name nginx-server nginx:latest
## Mapear porta do contêiner para o host
docker run -p 8080:80 -d nginx:latest
## Inspecionar detalhes do contêiner
docker inspect nginx-server
## Visualizar logs do contêiner
docker logs nginx-server
## Executar comando em contêiner em execução
docker exec -it nginx-server bash
Gerenciamento de Recursos do Contêiner
## Limitar recursos do contêiner
docker run -d \
--name limited-container \
--cpus="1" \
--memory="512m" \
nginx:latest
## Monitorar o uso de recursos do contêiner
docker stats
Configuração de Rede do Contêiner
## Criar rede personalizada
docker network create my-network
## Executar contêiner em rede específica
docker run --network=my-network -d nginx:latest
Resumo
O Docker representa uma abordagem revolucionária para o desenvolvimento de software, oferecendo contêineres leves e portáteis que otimizam o desenvolvimento de aplicativos e a gestão de infraestrutura. Ao dominar os princípios fundamentais do Docker, os processos de instalação e as técnicas de gerenciamento de contêineres, os profissionais podem aprimorar significativamente suas capacidades de desenvolvimento e implantação de software em diversos ambientes computacionais.



