Como usar os comandos básicos do Docker

DockerBeginner
Pratique Agora

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

  1. Consistência entre ambientes
  2. Implantação mais rápida
  3. Escalabilidade aprimorada
  4. Melhor utilização de recursos
  5. 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.