CodeGym /Cursos /Docker SELF /Tags e versões de imagens

Tags e versões de imagens

Docker SELF
Nível 14 , Lição 2
Disponível

8.1 Tagging no Docker

Tagging no Docker é o processo de atribuir uma tag a uma imagem que facilita o gerenciamento de versões. Isso torna o deployment e a atualização de aplicações mais convenientes e administráveis. Nessa aula, vamos explorar em detalhes o que são as tags, como usá-las e quais recomendações podem te ajudar a trabalhar com elas de forma mais eficiente.

Tag no Docker — é uma marca que permite identificar uma versão específica de uma imagem. Tags facilitam o acompanhamento de mudanças e ajudam a selecionar as versões certas para diferentes ambientes, como desenvolvimento, teste e produção.

Conceitos principais sobre tags:

  1. Unicidade: a tag identifica de forma única uma versão específica de uma imagem.
  2. Versionamento: com as tags, você pode marcar versões das imagens, como v1.0, v2.0, latest.
  3. Flexibilidade: tags são usadas para criar imagens correspondentes a estágios específicos de desenvolvimento, como beta, stable, prod.

8.2 Como usar tags

1. Atribuição de tags ao construir uma imagem

Você pode atribuir uma tag à imagem ao construí-la usando o parâmetro -t do comando docker build.

Exemplo:

Neste exemplo, a imagem recebe o nome myapp e a tag 1.0.

Terminal


docker build -t myapp:1.0 .

2. Atribuir tags adicionais a uma imagem existente

Você pode adicionar tags a uma imagem existente usando o comando docker tag.

Exemplo:

Este exemplo atribui uma tag adicional latest à imagem myapp:1.0.

Terminal


docker tag myapp:1.0 myapp:latest

3. Usar tags ao iniciar containers

Quando você inicia um container, pode especificar uma tag específica da imagem que deseja usar.

Exemplo:

Este exemplo inicia um container baseado na imagem myapp com a tag 1.0.

Terminal


docker run -d myapp:1.0

8.3 Prática de tagueamento

Usando versionamento semântico

Versionamento semântico (Semantic Versioning) é uma prática padrão de atribuição de versões que ajuda a entender o nível de mudanças na imagem.

Formato do versionamento semântico:


<major>.<minor>.<patch>

Onde:

  • major: Mudanças principais, incompatíveis com versões anteriores.
  • minor: Novas funcionalidades, compatíveis com versões anteriores.
  • patch: Correções de bugs e outras pequenas mudanças.

Exemplo:

Terminal


docker build -t myapp:2.1.3 .

Usando labels adicionais

Labels adicionais ajudam a indicar o estado da imagem, como beta, alpha, stable ou prod.

Exemplo:

Terminal


docker build -t myapp:1.0-beta .
docker build -t myapp:1.0-stable .

Atualizando tags

Ao atualizar uma imagem, é recomendável alterar as tags para facilitar o rastreamento de mudanças. A tag latest é frequentemente usada para indicar a versão mais recente da imagem.

Exemplo:

Terminal


docker build -t myapp:2.0 .
docker tag myapp:2.0 myapp:latest

8.4 Exemplos de uso de tags

Exemplos de como usar tags em diferentes ambientes:

Exemplo 1: Desenvolvimento

Para desenvolvimento, geralmente são usadas imagens com tags que indicam a versão atual ou o estado de desenvolvimento, como dev.

Terminal


docker build -t myapp:dev .
docker run -d myapp:dev

Exemplo 2: Testes

Nos ambientes de teste, são usadas imagens com tags que indicam versões específicas ou estados, como beta.

Terminal


docker build -t myapp:1.1-beta .
docker run -d myapp:1.1-beta

Exemplo 3: Produção

Em ambientes de produção, é importante usar versões estáveis e testadas das imagens, identificadas pelas tags stable, prod, ou versões semânticas, como 1.1.0-stable.

Terminal


docker build -t myapp:1.1.0-stable .
docker run -d myapp:1.1.0-stable

8.5 Melhores práticas

1. Sempre use versionamento semântico

Siga o versionamento semântico para todas as imagens. Isso ajuda a distinguir claramente os níveis de alterações e facilita o gerenciamento de versões.

2. Use tags claras e significativas

Use tags que claramente reflitam o estado ou objetivo da imagem (por exemplo, beta, stable, prod).

3. Evite usar latest em produção

A tag latest pode ser útil para desenvolvimento e testes, mas em produção é melhor usar versões específicas para evitar alterações imprevisíveis.

4. Documente o uso das tags

Documente como e para que as tags são usadas no seu projeto. Isso ajudará a equipe a entender melhor o processo de versionamento e reduzirá a probabilidade de erros.

Exemplos de Dockerfile usando tags

Exemplo 1: Criando e atribuindo tags

Dockerfile

# Dockerfile para versão 1.0.0 
FROM node:14
WORKDIR /app
COPY package*.json ./
RUN npm install
COPY . .
EXPOSE 3000
CMD ["node", "app.js"]

Comandos para build e tag

Terminal


docker build -t myapp:1.0.0 .
docker tag myapp:1.0.0 myapp:stable

Exemplo 2: Atualizando a imagem e atribuindo tags

Dockerfile

# Dockerfile para versão 1.1.0 com nova funcionalidade
FROM node:14
WORKDIR /app
COPY package*.json ./
RUN npm install
COPY . .
RUN rm -rf /app/tests /app/docs
ENV NODE_ENV=production
EXPOSE 3000
CMD ["node", "app.js"]

Comandos para build e tag

Terminal

        
docker build -t myapp:1.1.0 .
docker tag myapp:1.1.0 myapp:latest
Comentários
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION