Envio de imagens para registros
Configure fluxos de trabalho para enviar suas imagens Docker criadas a registros de contêineres, como Docker Hub ou GitHub Container Registry.
Envio de imagens para registros é uma aula grátis de CI/CD with GitHub Actions & DevOps Pipelines no CoddyKit. Esta é a aula 2 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de CI/CD with GitHub Actions & DevOps Pipelines, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de CI/CD with GitHub Actions & DevOps Pipelines inclui 4 aulas no total.
O que são registros de contêineres?
Um registro de contêineres é um serviço seguro de armazenamento online para suas imagens do Docker. Pense nele como uma unidade de armazenamento na nuvem criada especificamente para os pacotes do seu aplicativo.
- Eles armazenam diferentes versões das suas imagens.
- Eles facilitam o compartilhamento de imagens com outras pessoas.
- Eles são essenciais para a implantação em vários ambientes.
Por que usar registros?
Os registros são essenciais para o desenvolvimento moderno de software. Eles oferecem vários benefícios importantes:
- Compartilhamento de imagens: Distribua facilmente as imagens do seu aplicativo.
- Controle de versões: Armazene e gerencie diferentes versões do seu aplicativo.
- Implantação confiável: Garanta implantações consistentes entre os ambientes.
- Segurança: Muitos registros oferecem varredura de vulnerabilidades.
Serviços comuns de registro
Há muitos serviços de registro de contêineres disponíveis. Dois dos mais populares que você encontrará são:
- Docker Hub: Um registro público amplamente usado. Ótimo para compartilhar imagens públicas e para projetos pessoais.
- Registro de contêineres do GitHub (GHCR): É estreitamente integrado aos repositórios do GitHub. Excelente para imagens privadas e organizações que já usam o GitHub.
Outros grandes provedores de nuvem também oferecem seus próprios registros, como AWS ECR ou o Registro de contêineres do Google.
Autenticação no registro
Antes de enviar uma imagem para um registro, você precisa comprovar quem é. Esse processo é chamado de autenticação, ou de “fazer login”.
Normalmente, você fornecerá um nome de usuário e um token de acesso pessoal (PAT) ou uma senha. Essas credenciais garantem que somente usuários autorizados possam enviar ou baixar imagens dos seus repositórios privados.
Usando docker/login-action
Nas Ações do GitHub, a melhor maneira de se autenticar com a maioria dos registros compatíveis com o Docker é usar a ação docker/login-action.
Essa ação autentica seu fluxo de trabalho com segurança no registro especificado, permitindo que as etapas seguintes enviem imagens. Ela recebe username e password como entradas.
Enviando para o Docker Hub
Para enviar uma imagem ao Docker Hub, seu fluxo de trabalho precisa:
- Autenticar: Use
docker/login-actioncom seu nome de usuário do Docker Hub e um token de acesso pessoal (PAT) armazenado como um segredo do GitHub. - Compilar e enviar: Use
docker/build-push-actionpara compilar sua imagem e definapush: true. Verifique se a etiqueta da imagem inclui seu nome de usuário do Docker Hub, por exemplo,your_username/my-app:latest.
Exemplo de fluxo de trabalho do Docker Hub
Aqui está um exemplo de fluxo de trabalho das Ações do GitHub para compilar e enviar uma imagem do Docker ao Docker Hub. Lembre-se de configurar DOCKER_USERNAME e DOCKER_TOKEN como segredos do GitHub no seu repositório.
name: Publish Docker image to Docker Hub
on:
push:
branches: [ "main" ]
jobs:
build-and-push:
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Log in to Docker Hub
uses: docker/login-action@v3
with:
username: ${{ secrets.DOCKER_USERNAME }}
password: ${{ secrets.DOCKER_TOKEN }}
- name: Build and push Docker image
uses: docker/build-push-action@v5
with:
context: .
push: true
tags: ${{ secrets.DOCKER_USERNAME }}/my-app:latestEnviando para o GHCR
O Registro de contêineres do GitHub (GHCR) oferece integração perfeita. Principais diferenças do GHCR:
- Autenticação: Você pode usar o
GITHUB_TOKENintegrado para autenticação. Definausername: ${{ github.actor }}epassword: ${{ secrets.GITHUB_TOKEN }}. - Permissões: Seu trabalho precisa da permissão
packages: write. - Atribuição de etiquetas às imagens: As imagens recebem etiquetas no formato
ghcr.io/<OWNER>/<REPOSITORY>:<TAG>.
Exemplo de fluxo de trabalho do GHCR
Este fluxo de trabalho demonstra como enviar uma imagem para o Registro de contêineres do GitHub. Observe o bloco de permissions e o formato da etiqueta da imagem.
name: Publish Docker image to GHCR
on:
push:
branches: [ "main" ]
jobs:
build-and-push:
runs-on: ubuntu-latest
permissions:
contents: read
packages: write # Required for GHCR
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Log in to GHCR
uses: docker/login-action@v3
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Build and push Docker image
uses: docker/build-push-action@v5
with:
context: .
push: true
tags: ghcr.io/${{ github.repository }}:latestVerifique sua compreensão
Vamos revisar rapidamente o que você aprendeu sobre enviar imagens para registros de contêineres.
Recapitulação: envie suas imagens!
Excelente trabalho! Você aprendeu a enviar imagens do Docker para registros de contêineres usando GitHub Actions.
- Os registros de contêineres armazenam e gerenciam suas imagens do Docker.
- A autenticação é uma etapa inicial fundamental que usa credenciais.
docker/login-actionajuda você a entrar com segurança.- Você viu exemplos tanto do Docker Hub quanto do GitHub Container Registry e entendeu seus requisitos específicos de autenticação e marcação.
Em seguida, você aprenderá a implantar essas imagens no Kubernetes!
Perguntas Frequentes
A aula “Envio de imagens para registros” é grátis?
Sim — o texto completo de “Envio de imagens para registros” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de CI/CD with GitHub Actions & DevOps Pipelines, atualize para CoddyKit PRO. O curso de CI/CD with GitHub Actions & DevOps Pipelines inclui 4 aulas no total.
O que vou aprender em “Envio de imagens para registros”?
Configure fluxos de trabalho para enviar suas imagens Docker criadas a registros de contêineres, como Docker Hub ou GitHub Container Registry. Você pratica CI/CD with GitHub Actions & DevOps Pipelines com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.
Preciso ter experiência prévia para começar CI/CD with GitHub Actions & DevOps Pipelines?
Nenhuma experiência prévia é necessária. CI/CD with GitHub Actions & DevOps Pipelines no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 2 de 4.
Quanto tempo leva a aula “Envio de imagens para registros”?
A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.
Posso escrever e executar código nesta aula de CI/CD with GitHub Actions & DevOps Pipelines?
Sim. Cada aula de CI/CD with GitHub Actions & DevOps Pipelines inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.
Todas as aulas deste curso
- Criação de imagens Docker com Actions
- Envio de imagens para registros
- Implantação no Kubernetes com Actions
- Gráficos Helm e manifestos do Kubernetes em CI/CD