Como pesquisar imagens Docker

DockerBeginner
Pratique Agora

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:

  1. Visitando o site do Docker Hub (hub.docker.com)
  2. 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:

  1. Imagens oficiais: Prefira imagens oficiais, pois elas são mantidas pelo fornecedor do software
  2. Imagens populares: Uma contagem de estrelas mais alta indica mais usuários e, potencialmente, melhor manutenção
  3. Atualizações recentes: Verifique quando a imagem foi atualizada pela última vez
  4. Documentação: Procure imagens com boa documentação
  5. 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-name ou apenas image-name para 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:

  1. Cria um novo contêiner com base na imagem Ubuntu
  2. Executa o comando echo "Hello from Docker" dentro do contêiner
  3. 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:

  1. Created (Criado): Contêiner é criado, mas não iniciado
  2. Running (Em execução): Contêiner está atualmente em execução
  3. Paused (Pausado): A execução do contêiner é pausada
  4. Stopped (Parado): Contêiner saiu, mas ainda existe
  5. 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ê:

  1. Verificou sua instalação do Docker e compreendeu o conceito de imagens Docker
  2. Aprendeu a pesquisar imagens Docker usando o comando docker search
  3. Baixou imagens Docker para sua máquina local usando docker pull
  4. Listou e inspecionou suas imagens Docker locais
  5. Criou e executou contêineres a partir dessas imagens usando várias opções docker run
  6. 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.