9.1 Revisitando o Docker Hub
Bora conhecer melhor o Docker Hub! Só pra relembrar, ele é o principal repositório público do Docker, onde usuários podem armazenar, compartilhar e encontrar imagens de contêineres prontinhas. Essa plataforma dá acesso a milhões de contêineres criados tanto por organizações oficiais quanto pela comunidade. Nesta aula, vamos explorar como buscar e baixar imagens do Docker Hub de maneira eficiente.
Principais funções do serviço Docker Hub
O Docker Hub é um serviço cloud que permite fazer upload de imagens pra um repositório centralizado e baixá-las de lá. Ele é uma espécie de ponto de encontro onde devs podem compartilhar suas imagens e reaproveitar soluções já criadas por outros. As funções principais do Docker Hub incluem:
- Repositórios públicos e privados: Dá pra armazenar imagens tanto com acesso aberto pra geral quanto com acesso restrito pra usuários específicos.
- Automated builds: Integração com sistemas de versionamento como o GitHub pra gerar imagens automaticamente toda vez que o código é alterado.
- Webhooks: Configuração de ações automáticas que são executadas quando as imagens são atualizadas.
9.2 Buscando imagens prontas
1. Usando a interface web do Docker Hub
- Acesse o site do Docker Hub: abra o Docker Hub no seu navegador.
- Busque imagens: digite o nome da imagem ou palavras-chave relacionadas ao seu projeto na barra de busca. Por exemplo, para buscar a imagem do Nginx, digite "nginx" e pressione Enter.
- Veja os resultados: os resultados da busca mostrarão imagens compatíveis. Imagens oficiais são marcadas como "Official" e são mantidas pelo Docker ou pelas organizações correspondentes. Imagens de outros usuários têm o nome do usuário ou da organização indicado.
- Escolha uma imagem: clique na imagem que você acha interessante para ver sua descrição, tags disponíveis, instruções de uso e outras informações úteis.
2. Buscando imagens usando a linha de comando
O Docker também permite buscar imagens diretamente pelo terminal usando o comando docker search
.
Exemplo de comando:
docker search nginx
Esse comando vai mostrar uma lista de imagens que contêm nginx
no nome ou na descrição. O resultado inclui o nome da imagem, sua descrição, número de estrelas (avaliação), indicação de status oficial e informações sobre builds automáticos.
Exemplo de saída:
NAME DESCRIPTION STARS OFFICIAL AUTOMATED
nginx Official build of Nginx. 13764 [OK]
jwilder/nginx-proxy Automated Nginx reverse proxy for... 2135 [OK]
richarvey/nginx-php-fpm Container running Nginx + PHP-FPM... 819 [OK]
9.3 Baixando Imagens
Depois de encontrar a imagem que você precisa, dá pra baixar ela pra sua máquina local usando o comando docker pull
.
1. Baixando uma imagem específica
Pra baixar uma imagem específica, usa a sintaxe a seguir:
docker pull [OPTIONS] NAME[:TAG|@DIGEST]
Onde:
- NAME: o nome da imagem.
- TAG: (opcional) tag da imagem. O padrão é a tag
latest
, se você não especificar outra. - @DIGEST: (opcional) identificador SHA256 da imagem.
Exemplo de baixar uma imagem:
Este exemplo vai baixar a última imagem do nginx
com a tag latest
.
docker pull nginx:latest
2. Baixando uma imagem com uma tag específica
Se você precisar de uma tag específica da imagem, coloca ela depois dos dois-pontos. Este exemplo vai baixar a imagem do Ubuntu versão 20.04.
docker pull ubuntu:20.04
3. Verificando imagens baixadas
Depois de baixar a imagem, você pode checar quais imagens estão na sua máquina local com o comando docker images
.
Exemplo de comando:
A saída do comando vai mostrar a lista de todas as imagens baixadas com informações sobre o repositório, a tag, o ID da imagem, a data de criação e o tamanho.
docker images
9.4 Exemplos de Uso de Imagens Prontas
1. Iniciar um servidor web com Nginx
Depois de baixar a imagem do Nginx, você pode rapidamente rodar um container baseado nela.
Exemplo:
Este exemplo inicia um container Nginx
em segundo plano e redireciona a porta 80 do container para a porta 8080 da máquina host. Agora você pode acessar o servidor web Nginx
abrindo o navegador e entrando em http://localhost:8080.
docker run -d -p 8080:80 nginx
2. Iniciar um banco de dados MySQL
O Docker Hub oferece imagens prontas de bancos de dados como o MySQL, o que facilita a configuração de bancos de dados para desenvolvimento e testes.
Exemplo:
Este exemplo inicia um container do MySQL, define uma senha para o usuário root e redireciona a porta 3306 do container para a porta 3306 da máquina host.
docker run -d -p 3306:3306 --name my_mysql -e MYSQL_ROOT_PASSWORD=my-secret-pw mysql:latest
3. Usar a imagem do Redis para cache
O Redis é um sistema popular de cache, e o Docker Hub disponibiliza uma imagem pronta do Redis que você pode usar para fazer deploy rapidamente.
Exemplo:
Este exemplo inicia um container do Redis e redireciona a porta 6379 do container para a porta 6379 da máquina host.
docker run -d -p 6379:6379 --name my_redis redis:latest
GO TO FULL VERSION