Introdução
O Docker revolucionou o desenvolvimento de software, fornecendo uma plataforma poderosa para a contenção de aplicativos. Este tutorial abrangente guiará você pelos comandos fundamentais do Docker, ajudando desenvolvedores e administradores de sistemas a compreender como gerenciar de forma eficiente contêineres, imagens e redes Docker. Se você é um iniciante ou está procurando atualizar suas habilidades com Docker, este guia fornecerá insights práticos sobre o uso da interface de linha de comando do Docker.
Conceitos Básicos do Docker
O que é o Docker?
O Docker é uma plataforma de código aberto projetada para automatizar a implantação, escalonamento e gerenciamento de aplicativos por meio da contenção. Ele permite que desenvolvedores empacotem aplicativos com todas as suas dependências em unidades padronizadas chamadas contêineres, que podem ser executados de forma consistente em diferentes ambientes de computação.
Conceitos Chave do Docker
1. Contêineres
Contêineres são pacotes executáveis, autônomos e leves que incluem tudo o que é necessário para executar um aplicativo:
- Código
- Tempo de execução
- Ferramentas do sistema
- Bibliotecas do sistema
- Configurações
graph LR
A[Código do Aplicativo] --> B[Contêiner]
C[Dependências] --> B
D[Bibliotecas do Sistema] --> B
E[Configuração] --> B
2. Imagens
Imagens Docker são modelos somente leitura usados para criar contêineres. Elas servem como modelos para a criação de contêineres e podem ser armazenadas em repositórios como o Docker Hub.
3. Dockerfile
Um Dockerfile é um documento de texto que contém instruções para a construção de uma imagem Docker. Ele define o ambiente, as dependências e a configuração para um aplicativo.
Exemplo de Dockerfile:
FROM ubuntu:22.04
RUN apt-get update
RUN apt-get install -y python3
COPY . /app
WORKDIR /app
CMD ["python3", "app.py"]
4. Arquitetura do Docker
graph TB
A[Cliente Docker] --> B[Demônio Docker]
B --> C[Tempo de Execução do Contêiner]
B --> D[Registro de Imagens]
B --> E[Armazenamento de Imagens]
5. Contêineres vs Máquinas Virtuais
| Característica | Contêineres | Máquinas Virtuais |
|---|---|---|
| Uso de Recursos | Leve | Pesado |
| Tempo de Inicialização | Segundos | Minutos |
| Nível de Isolamento | Nível de processo | Nível de sistema operacional completo |
| Desempenho | Alto | Mais baixo |
Benefícios do Docker
- Consistência entre ambientes
- Implantação mais rápida
- Escalabilidade aprimorada
- Melhor utilização de recursos
- Gerenciamento de dependências simplificado
Casos de Uso
- Arquitetura de microserviços
- Integração Contínua/Entrega Contínua (CI/CD)
- Desenvolvimento de aplicativos nativos de nuvem
- Testes de aplicativos simplificados
Começando com o LabEx
O LabEx fornece ambientes de aprendizagem interativos do Docker que ajudam os desenvolvedores a compreender e praticar rapidamente as tecnologias de contenção.
Guia de Instalação do Docker
Pré-requisitos
Antes de instalar o Docker, certifique-se de que seu sistema Ubuntu 22.04 atenda aos seguintes requisitos:
- Sistema operacional de 64 bits
- Versão do kernel 3.10 ou superior
- Recursos de sistema suficientes
Métodos de Instalação
1. Instalar usando o Repositório
Passo 1: Atualizar o Índice de Pacotes
sudo apt-get update
Passo 2: Instalar Pacotes Necessários
sudo apt update
sudo apt-get install ca-certificates curl gnupg lsb-release
Passo 3: Adicionar a Chave GPG Oficial do Docker
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
Passo 4: Configurar o Repositório do Docker
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
Passo 5: Instalar o Docker Engine
sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io
2. Verificar a Instalação
sudo docker --version
sudo docker run hello-world
Fluxo de Instalação
graph TD
A[Atualizar Sistema] --> B[Instalar Dependências]
B --> C[Adicionar Chave GPG]
C --> D[Configurar Repositório]
D --> E[Instalar Docker]
E --> F[Verificar Instalação]
Passos Pós-Instalação
1. Gerenciar o Docker como Usuário Não-Root
sudo usermod -aG docker $USER
newgrp docker
2. Configurar o Docker para Iniciar no Boot
sudo systemctl enable docker
sudo systemctl start docker
Opções de Instalação do Docker
| Método | Prós | Contras |
|---|---|---|
| Repositório | Atualizações fáceis | Requer conexão com a internet |
| Pacote Oficial | Controle direto | Atualizações manuais |
| Instalação por Script | Configuração rápida | Menos seguro |
Solução de Problemas de Problemas Comuns
- Verifique a compatibilidade do sistema
- Verifique a conectividade de rede
- Certifique-se de que há espaço de disco suficiente
- Atualize os pacotes do sistema regularmente
Ambiente de Aprendizagem Docker do LabEx
O LabEx fornece tutoriais interativos de instalação do Docker e ambientes práticos para ajudar os desenvolvedores a dominar as tecnologias de contenção de forma rápida e eficaz.
Requisitos de Sistema Recomendados
| Componente | Especificação Mínima |
|---|---|
| CPU | 2 núcleos |
| RAM | 4 GB |
| Espaço em Disco | 20 GB |
| SO | Ubuntu 22.04 LTS |
Comandos Básicos do Docker
Estrutura dos Comandos Docker
Os comandos Docker seguem uma sintaxe padrão:
docker [comando] [opções] [argumentos]
Comandos de Gerenciamento de Imagens
1. Extrair Imagens
docker pull ubuntu:latest
docker pull nginx:alpine
2. Listar Imagens
docker images
docker image ls
3. Remover Imagens
docker rmi ubuntu:latest
docker image rm nginx:alpine
Comandos de Gerenciamento de Contêineres
1. Criar e Executar Contêineres
docker run -d --name web-server nginx
docker run -it ubuntu:latest /bin/bash
2. Listar Contêineres
docker ps ## Contêineres em execução
docker ps -a ## Todos os contêineres
3. Iniciar, Parar e Reiniciar Contêineres
docker start web-server
docker stop web-server
docker restart web-server
4. Remover Contêineres
docker rm web-server
docker container prune ## Remover todos os contêineres parados
Comandos de Interação com Contêineres
1. Executar Comandos dentro do Contêiner
docker exec -it web-server bash
docker exec web-server ls /var/www/html
2. Visualizar Logs do Contêiner
docker logs web-server
docker logs -f web-server ## Seguir a saída do log
Fluxo de Trabalho Docker
graph TD
A[Extrair Imagem] --> B[Criar Contêiner]
B --> C[Iniciar Contêiner]
C --> D[Interagir/Executar]
D --> E[Parar Contêiner]
E --> F[Remover Contêiner]
Comandos Docker Avançados
1. Construir Imagens Personalizadas
docker build -t myapp:v1 .
2. Volumes Docker
docker volume create myvolume
docker run -v myvolume:/app nginx
3. Gerenciamento de Rede
docker network create mynetwork
docker run --network mynetwork nginx
Categorias Comuns de Comandos Docker
| Categoria | Finalidade | Exemplos de Comandos |
|---|---|---|
| Gerenciamento de Imagem | Gerenciar imagens Docker | pull, push, build |
| Gerenciamento de Contêiner | Controlar contêineres | run, start, stop |
| Gerenciamento do Sistema | Informações do sistema Docker | info, version |
| Gerenciamento de Rede | Gerenciar redes | network create |
| Gerenciamento de Volume | Gerenciar dados persistentes | volume create |
Boas Práticas
- Use tags de imagem específicas
- Limpe recursos não utilizados
- Utilize o Docker Compose para configurações complexas
- Implemente builds em várias etapas
Aprendizado Docker do LabEx
O LabEx oferece ambientes interativos para praticar esses comandos Docker, ajudando os desenvolvedores a adquirir habilidades práticas de contenção de forma eficiente.
Opções Úteis de Comandos Docker
| Opção | Descrição | Exemplo |
|---|---|---|
-d |
Modo desacoplado | docker run -d nginx |
-it |
Terminal interativo | docker run -it ubuntu |
--name |
Nomear um contêiner | docker run --name web nginx |
-p |
Mapeamento de porta | docker run -p 8080:80 nginx |
Resumo
Ao dominar esses comandos básicos do Docker, você adquiriu habilidades essenciais para gerenciamento e implantação de contêineres. O Docker oferece uma solução robusta para criar, executar e gerenciar contêineres em diferentes ambientes. Conforme você continua a explorar as capacidades do Docker, lembre-se de que esses comandos fundamentais formam a base de estratégias eficientes de contenção. Pratique e experimente esses comandos para se tornar proficiente na tecnologia Docker e otimizar seus fluxos de trabalho de desenvolvimento.



