Docker
  • Introdução a Containeres e Docker
    • Introdução
    • O que é um container e suas vantanges
    • VM versus Container
    • Como funcionam os containers
    • Linux
    • Container sem Docker
      • cgroup
      • cpu.max
    • LxC
    • LxD
    • Containers versus Imagens
    • Arquitetura do Docker
    • Arquitetura do Docker mais a fundo
    • Projetos Open Source
  • Instalação do Docker
    • Linux
    • Windows
      • Docker Desktop
      • Rancher Desktop
      • WSL
    • Mac
    • Visual Studio Code
  • Primeiros Passos com Docker
    • Criação e listagem básica de um container
    • Interagindo com o container
    • Executando containers continuamente
      • nginx
      • docker container run
      • docker container run nginx
      • docker container run -d nginx
      • docker container exec
    • Como usar publish de porta
      • docker container stop
      • docker container start
      • docker container rm
      • docker container rm -f $(docker container ls -qa)
    • Containers e variáveis de ambiente
      • docker container run -e
  • Desafio
    • Desafio 01 - Banco de Dados Postgresql
    • Desafio 02 - Banco de Dados MySQL
    • Desafio 03 - Banco de Dados MongoDB
  • Executando a sua primeira aplicação em containers
    • Introdução
    • Preparando o container para a aplicação
    • Executando a aplicação
      • docker container cp
  • Primeiros Passos com Docker Images
    • Introdução
    • OverlayFS na Prática
    • Copy-on-Write
    • Formas de criar uma imagem Docker
    • Como funciona o Docker Commit
    • Docker Commit na Prática
      • docker commit
    • Entendendo melhor a sua imagem
      • docker image history
      • docker image inspect
    • Entrando mais a fundo na imagem
    • Como usar a imagem Docker no modo raiz
  • Avançando em imagens Docker com Dockerfile
    • O que é Dockerfile
    • Primeira Imagem com Dockerfile
      • docker image build
    • Como funciona a construção com Dockerfile
    • Possibilidades com Dockerfile
    • FROM
    • RUN
    • WORKDIR
    • COPY
    • ADD
    • LABEL
    • ENV
    • VOLUME
    • ARG
    • EXPOSE
    • USER
    • ENTRYPOINT
    • CMD
    • ENTRYPOINT versus CMD
    • Principais comandos com imagem
    • Imagem da aplicação com Dockerfile
    • Comparando Docker Commit com Dockerfile
  • Docker Registry
    • Introdução
    • Docker Hub
    • Sua imagem com o nome certo
    • Renomear imagens com Docker Tag
      • docker image tag
    • Enviando a sua primeira imagem para o Docker Hub
      • docker image push
      • docker image pull
  • Algumas boas práticas para construção de imagem
    • Um processo por container
    • Usar imagens confiáveis
    • Otimizar sempre a sua imagem
    • Uso inteligente das camadas
    • Dockerignore
  • Multistage Build
    • Introdução
    • Multistage build na prática
    • Target para fazer o build
      • docker image build --target
    • Imagem externa no Multistage build
    • Usar um estágio de build como base
  • Docker Volume
    • Introdução
      • docker volume
    • Bind Mount
    • Particularidades do Bind Mount
    • Bind Mount no Windows
    • Exemplo com Bind Mount
    • Docker Volume
      • docker volume create
      • docker volume inspect
      • docker volume ls
      • docker volume prune
      • docker volume rm
    • Onde ficam os arquivos do Docker volume?
    • Usando o volume no Dockerfile
    • Como fazer backup de um Docker Volume
    • Exemplo com Docker Volume
    • Storage tmpfs
    • Como criar algo funcional com o que aprendemos
  • Network
    • Introdução
    • Componentes do Docker Network
    • Rede Bridge na prática
      • docker network
      • docker network create
      • docker network inspect
      • docker network ls
      • docker network prune
      • docker network rm
    • Criando a sua rede bridge
      • docker network connect
      • docker network disconnect
    • Como funciona a rede bridge por dentro
    • Rede Host na prática
    • Rede none da prática
    • Como adicionar domínios no seu container
  • Aplicação 100% no Docker
    • Introdução
    • Criação da Imagem e Envio para o Docker Hub
    • Criação do Docker Network
    • Container do PostgreSQL
    • Container da Aplicação Web
    • Atualização da aplicação
  • Docker Compose
    • Introdução
      • docker compose
    • A evolução do docker compose
    • Criação básica de um Docker Compose
      • docker compose attach
      • docker compose build
      • docker compose config
      • docker compose cp
      • docker compose create
      • docker compose down
      • docker compose events
      • docker compose exec
      • docker compose images
      • docker compose kill
      • docker compose logs
      • docker compose ls
      • docker compose pause
      • docker compose port
      • docker compose ps
      • docker compose pull
      • docker compose push
      • docker compose restart
      • docker compose rm
      • docker compose run
      • docker compose scale
      • docker compose start
      • docker compose stats
      • docker compose stop
      • docker compose top
      • docker compose unpause
      • docker compose up
      • docker compose version
      • docker compose wait
      • docker compose watch
    • Variáveis de Ambiente
    • Volume Bind Mount
    • Docker Volume
    • Docker Network - Bridge
    • Docker Network - Host Driver e Add Host
    • Ordenando a execução dos containers
    • Compose com build de imagem
    • Como Parametrizar o Compose com Variáveis de Ambiente
    • Múltiplos Composes
    • Extends
    • Merge
    • Include
    • Profiles
    • Comandos importantes do Docker Compose
  • Troubleshooting
    • Introdução
    • Docker Info
    • Docker Events
    • Docker Logs
    • Docker Inspect
    • Docker Top
    • Docker Stats
    • Docker Exec
  • Resiliência e Gerenciamento de Recursos
    • Introdução
    • Docker Restart
      • Introdução
      • on-failure
      • unless-stopped
      • always
      • Docker Compose
    • Healthcheck
      • Introdução
      • Linha de Comando
      • Docker Compose
      • Direto na Imagem
    • Gerenciamento de Recurso
      • CPU
        • Como Gerenciar CPU
        • Prática
      • Memória
        • Como Gerenciar Memória
        • Prática
      • Docker Compose
  • Fazendo um ambiente mais seguro
    • Introdução
    • Docker Scout
      • Introdução
      • Verificação Simples de Imagem
      • Como adicionar um repositório
      • Primeira melhoria na imagem
  • BUSCA RÁPIDA
    • Referências
    • Comandos
      • docker commit
      • docker compose
      • docker container
      • docker image
      • docker network
      • docker volume
    • Dockerfile
Powered by GitBook
On this page
  1. Docker Registry

Introdução

Um Docker Registry é um sistema que armazena e distribui imagens Docker. Ele pode ser hospedado localmente, em uma rede privada ou na nuvem. Enquanto o Docker Hub é o registry público mais conhecido e usado, você pode configurar seu próprio Docker Registry privado para ter maior controle sobre suas imagens.

Principais Características do Docker Registry:

  1. Armazenamento de Imagens:

    • O Docker Registry armazena imagens Docker, que consistem em uma série de camadas empilhadas. Cada camada representa uma mudança ou adição feita em uma imagem.

  2. Distribuição de Imagens:

    • Permite a distribuição de imagens Docker através de comandos como docker pull e docker push. As imagens podem ser distribuídas de forma privada ou pública.

  3. Controle de Acesso:

    • Um Docker Registry privado pode ter autenticação e autorização configuradas para garantir que apenas usuários autorizados possam acessar ou enviar imagens.

  4. Escalabilidade e Desempenho:

    • Pode ser escalado horizontalmente para lidar com um grande volume de imagens e solicitações. A arquitetura permite a replicação e o balanceamento de carga.

  5. Integração com CI/CD:

    • O Docker Registry pode ser integrado em pipelines de CI/CD para armazenar e distribuir automaticamente as imagens geradas.

  6. Compatibilidade com Ferramentas de DevOps:

    • Ferramentas como Kubernetes, Jenkins, e GitLab CI/CD podem ser configuradas para utilizar um Docker Registry para armazenar e recuperar imagens durante o ciclo de desenvolvimento e implantação.

Tipos de Docker Registry:

  1. Docker Hub:

    • O registry público mais conhecido, gerenciado pela Docker Inc. Ele permite criar repositórios públicos e privados.

  2. Private Docker Registry:

    • Um registry privado que pode ser hospedado internamente por uma organização. Oferece maior controle sobre quem pode acessar e gerenciar as imagens.

    • Docker Registry Open Source: A Docker oferece uma versão open-source do Docker Registry que pode ser usada para criar registries privados.

    • Artifactory, Nexus, GitLab Container Registry: Outras ferramentas e plataformas que oferecem funcionalidades de Docker Registry com integrações avançadas e gestão de artefatos.

  3. Cloud Registries:

    • Amazon Elastic Container Registry (ECR): Serviço de registry gerenciado pela AWS.

    • Google Container Registry (GCR): Serviço de registry gerenciado pelo Google Cloud.

    • Azure Container Registry (ACR): Serviço de registry gerenciado pela Microsoft Azure.

Como Utilizar um Docker Registry:

  1. Rodar um Docker Registry Privado:

    • Você pode iniciar um Docker Registry privado utilizando a imagem oficial:

      docker run -d -p 5000:5000 --name registry registry:2
  2. Configurar Autenticação:

    • Para adicionar uma camada de segurança, você pode configurar autenticação básica no Docker Registry, usando arquivos .htpasswd.

  3. Enviar Imagens (Push):

    • Para enviar uma imagem para o Docker Registry, você precisa primeiro marcá-la (tag) com a URL do registry e, em seguida, usar o comando docker push:

      docker tag myimage localhost:5000/myimage
      docker push localhost:5000/myimage
  4. Buscar Imagens (Pull):

    • Para baixar uma imagem do registry, use o comando docker pull:

      docker pull localhost:5000/myimage
  5. Gerenciamento de Camadas e Storage:

    • O Docker Registry armazena as camadas das imagens em um backend de storage, que pode ser um sistema de arquivos local ou serviços de armazenamento na nuvem como S3.

Benefícios de Usar um Docker Registry Privado:

  • Segurança: Maior controle sobre quem pode acessar e modificar suas imagens.

  • Performance: Imagens podem ser armazenadas localmente, reduzindo a latência e melhorando a velocidade de deploy.

  • Compliance: Atende a requisitos de conformidade, permitindo que as imagens permaneçam dentro de redes corporativas.

Conclusão:

Um Docker Registry é uma peça fundamental na infraestrutura de DevOps, permitindo o armazenamento, gestão e distribuição de imagens Docker. Enquanto o Docker Hub é uma solução pronta e fácil de usar, um registry privado ou em nuvem pode oferecer maior controle, segurança e integração com sistemas internos.

PreviousDocker RegistryNextDocker Hub

Last updated 9 months ago