Introdução
O Docker tornou-se uma ferramenta essencial para o desenvolvimento moderno de software, permitindo que os desenvolvedores empacotem e implantem aplicações de forma consistente e confiável. As imagens Docker servem como os blocos de construção para aplicações em contêineres, fornecendo ambientes pré-configurados que podem ser facilmente compartilhados e implantados.
Neste laboratório prático, você aprenderá como pesquisar imagens Docker usando a interface de linha de comando do Docker, baixar (pull) essas imagens para sua máquina local e executar contêineres com base nessas imagens. Ao final deste tutorial, você terá as habilidades necessárias para encontrar e usar imagens Docker que atendam aos requisitos específicos do seu projeto.
Verificando a Instalação do Docker
Antes de começarmos a pesquisar imagens Docker, vamos primeiro verificar se o Docker está corretamente instalado e em execução no seu sistema.
Verificando a Instalação do Docker
Abra uma janela de terminal e execute o seguinte comando para verificar se o Docker está instalado:
docker --version
Você deve ver uma saída semelhante a esta:
Docker version 20.10.21, build baeda1f
Isso confirma que o Docker está instalado no seu sistema. O número da versão pode ser diferente dependendo da sua instalação.
Verificando o Status do Serviço Docker
Vamos também verificar se o serviço Docker está funcionando corretamente executando:
sudo systemctl status docker
Você deve ver uma saída indicando que o serviço Docker está ativo e em execução:
● docker.service - Docker Application Container Engine
Loaded: loaded (/lib/systemd/system/docker.service; enabled; vendor preset: enabled)
Active: active (running) since...
Se, por algum motivo, o Docker não estiver em execução, você pode iniciá-lo com:
sudo systemctl start docker
Entendendo as Imagens Docker
Uma imagem Docker é um modelo somente leitura (read-only) contendo um conjunto de instruções para criar um contêiner. Você pode pensar em uma imagem como um snapshot ou um blueprint de uma aplicação, juntamente com seu ambiente, dependências e configuração.
As imagens Docker são:
- Em camadas (Layered): Construídas usando uma série de camadas que podem ser compartilhadas entre as imagens
- Somente leitura (Read-only): Não podem ser modificadas após a criação
- Nomeadas e marcadas (tagged): Identificadas por um nome e uma tag opcional (por exemplo,
ubuntu:22.04)
No próximo passo, aprenderemos como pesquisar essas imagens.
Pesquisando Imagens Docker
O Docker Hub é o registro público oficial para imagens Docker. Ele contém milhares de imagens, incluindo imagens oficiais mantidas por fornecedores de software e imagens da comunidade criadas por usuários do Docker.
Pesquisa Básica de Imagens
Para pesquisar imagens Docker, use o comando docker search seguido por um termo de pesquisa. Vamos pesquisar por imagens Ubuntu:
docker search ubuntu
Você verá uma saída semelhante a esta:
NAME DESCRIPTION STARS OFFICIAL AUTOMATED
ubuntu Ubuntu is a Debian-based Linux operating sys… 14938 [OK]
ubuntu-upstart Upstart is an event-based replacement for th… 112 [OK]
rastasheep/ubuntu-sshd Dockerized SSH service, built on top of offi… 254 [OK]
...
A saída mostra:
- NAME: O nome da imagem
- DESCRIPTION: Uma breve descrição da imagem
- STARS: Número de usuários que favoritaram a imagem (indicador de popularidade)
- OFFICIAL: Tag indicando uma imagem oficial mantida pelo fornecedor de software
- AUTOMATED: Tag indicando uma imagem construída por um processo automatizado
Filtrando Resultados da Pesquisa
Você pode filtrar os resultados da pesquisa usando a opção --filter. Por exemplo, para mostrar apenas imagens oficiais:
docker search --filter=is-official=true ubuntu
Para encontrar imagens com pelo menos 100 estrelas (imagens populares):
docker search --filter=stars=100 ubuntu
Você também pode combinar vários filtros:
docker search --filter=is-official=true --filter=stars=100 nginx
Este comando pesquisa por imagens Nginx oficiais com pelo menos 100 estrelas.
Encontrando Versões Específicas
O comando docker search não mostra as tags (versões) das imagens, mas você pode encontrá-las:
- Visitando o site do Docker Hub (hub.docker.com)
- Usando o comando
docker image inspect(após baixar a imagem)
Por exemplo, para ver todas as versões Ubuntu disponíveis, visite: https://hub.docker.com/_/ubuntu?tab=tags
Escolhendo a Imagem Certa
Ao selecionar uma imagem Docker, considere o seguinte:
- Imagens oficiais: Prefira imagens oficiais, pois elas são mantidas pelo fornecedor do software
- Imagens populares: Uma contagem de estrelas mais alta indica mais usuários e, potencialmente, melhor manutenção
- Atualizações recentes: Verifique quando a imagem foi atualizada pela última vez
- Documentação: Procure imagens com boa documentação
- Tamanho: Considere o tamanho da imagem, pois imagens menores são baixadas mais rapidamente
Baixando Imagens Docker
Depois de encontrar uma imagem que você deseja usar, você pode baixá-la para sua máquina local com o comando docker pull.
Baixando uma Imagem
Vamos baixar a imagem Ubuntu oficial:
docker pull ubuntu
Você verá uma saída semelhante a:
Using default tag: latest
latest: Pulling from library/ubuntu
7b1a6ab2e44d: Pull complete
Digest: sha256:626ffe58f6e7566e00254b638eb7e0f3b11d4da9675088f4781a50ae288f3322
Status: Downloaded newer image for ubuntu:latest
docker.io/library/ubuntu:latest
Por padrão, o Docker baixa a tag latest. Para baixar uma versão específica, adicione uma tag:
docker pull ubuntu:20.04
Você verá uma saída mostrando o progresso do download para essa versão específica.
Listando as Imagens Baixadas
Para ver todas as imagens que você baixou, use:
docker images
Ou o formato de comando mais recente:
docker image ls
Ambos os comandos produzem a mesma saída:
REPOSITORY TAG IMAGE ID CREATED SIZE
ubuntu latest 1318b700e415 4 weeks ago 72.8MB
ubuntu 20.04 1318b700e415 4 weeks ago 72.8MB
Entendendo as Tags de Imagem
As imagens Docker são identificadas por tags. O formato da tag é tipicamente:
repository:tag
Onde:
- repository: Geralmente no formato
username/image-nameou apenasimage-namepara imagens oficiais - tag: Especifica a versão (por exemplo,
latest,20.04,3.9-alpine)
Se você omitir a tag, o Docker assume que você deseja a tag latest.
Obtendo Detalhes da Imagem
Para visualizar informações detalhadas sobre uma imagem, use:
docker image inspect ubuntu:latest
Este comando exibe um objeto JSON com todos os metadados da imagem, incluindo camadas, configuração e variáveis de ambiente.
Para ver o histórico das camadas da imagem:
docker history ubuntu:latest
Isso mostra como a imagem foi construída, camada por camada.
Executando Contêineres a partir de Imagens
Agora que você baixou algumas imagens Docker, vamos aprender como criar e executar contêineres com base nessas imagens.
Executando um Contêiner Básico
Para executar um contêiner a partir de uma imagem, use o comando docker run:
docker run ubuntu echo "Hello from Docker"
Este comando:
- Cria um novo contêiner com base na imagem Ubuntu
- Executa o comando
echo "Hello from Docker"dentro do contêiner - Sai após a conclusão do comando
Você deve ver a saída:
Hello from Docker
Executando um Contêiner Interativo
Para interagir com um contêiner, use as flags -it (terminal interativo):
docker run -it ubuntu bash
Isso inicia um shell bash dentro do contêiner. Você está agora efetivamente "dentro" do contêiner e pode executar comandos.
Experimente alguns comandos:
ls
cat /etc/os-release
Para sair do contêiner, digite:
exit
Listando Contêineres em Execução
Para ver todos os contêineres em execução:
docker ps
Como nossos contêineres saíram imediatamente após a conclusão, você pode não ver nenhuma saída. Para ver todos os contêineres, incluindo os parados:
docker ps -a
Isso mostra todos os contêineres, seus status e quando foram criados/saíram.
Ciclo de Vida do Contêiner
Os contêineres têm um ciclo de vida:
- Created (Criado): Contêiner é criado, mas não iniciado
- Running (Em execução): Contêiner está atualmente em execução
- Paused (Pausado): A execução do contêiner é pausada
- Stopped (Parado): Contêiner saiu, mas ainda existe
- Removed (Removido): Contêiner é excluído
Você pode remover um contêiner parado com:
docker rm <container_id>
Substitua <container_id> pelo ID mostrado na saída de docker ps -a.
Para remover automaticamente um contêiner após sua saída, use a flag --rm:
docker run --rm ubuntu echo "This container will be removed after execution"
Executando um Contêiner de Servidor Web
Vamos tentar algo mais prático executando um servidor web Nginx:
docker pull nginx:alpine
Isso baixa uma imagem Nginx leve baseada no Alpine Linux.
Agora, execute um contêiner que mapeia a porta 8080 no seu host para a porta 80 no contêiner:
docker run -d -p 8080:80 --name my-nginx nginx:alpine
Este comando:
-d: Executa o contêiner em modo detached (background - em segundo plano)-p 8080:80: Mapeia a porta 8080 no seu host para a porta 80 no contêiner--name my-nginx: Nomeia o contêiner "my-nginx"
Agora você pode acessar a página de boas-vindas do Nginx navegando para http://localhost:8080 em um navegador web, ou usando curl:
curl http://localhost:8080
Você deve ver o conteúdo HTML da página de boas-vindas do Nginx.
Para parar e remover este contêiner:
docker stop my-nginx
docker rm my-nginx
Resumo
Parabéns por concluir este laboratório de pesquisa e uso de imagens Docker. Ao longo deste tutorial, você:
- Verificou sua instalação do Docker e compreendeu o conceito de imagens Docker
- Aprendeu a pesquisar imagens Docker usando o comando
docker search - Baixou imagens Docker para sua máquina local usando
docker pull - Listou e inspecionou suas imagens Docker locais
- Criou e executou contêineres a partir dessas imagens usando várias opções
docker run - Compreendeu o ciclo de vida do contêiner e como gerenciar contêineres
Essas habilidades formam a base para trabalhar com Docker em seus projetos de desenvolvimento. Agora você pode pesquisar, baixar e usar imagens Docker para criar ambientes em contêineres para suas aplicações.
Os próximos passos em sua jornada com Docker podem incluir:
- Aprender a criar suas próprias imagens Docker com Dockerfiles
- Compreender o Docker networking (rede) e a persistência de dados
- Explorar o Docker Compose para aplicações multi-contêiner
- Mergulhar na orquestração de contêineres com Kubernetes
Continue experimentando com diferentes imagens Docker para descobrir o vasto ecossistema de contêineres pré-construídos disponíveis para acelerar seu fluxo de trabalho de desenvolvimento.



