CodeGym /Cursos /Docker SELF /Introdução aos Docker Images

Introdução aos Docker Images

Docker SELF
Nível 13 , Lição 0
Disponível

1.1 Fundamentos dos Docker Images

Docker Images (imagens Docker) — são templates para containers Docker. Eles contêm tudo que é necessário pra rodar aplicações: código, bibliotecas, dependências, ferramentas e arquivos de configuração. Entender o que são Docker Images e como elas estão estruturadas é essencial pra usar o Docker de forma eficiente.

Docker Image — é um template imutável que é usado pra criar containers. Ele contém todos os componentes necessários pra executar uma aplicação em um ambiente isolado. Quando você roda um container, o Docker cria uma instância da imagem e a executa.

Características principais dos Docker Images:

  1. Imutabilidade: os Docker Images são imutáveis. Qualquer alteração no container não afeta a imagem original. Pra modificar o conteúdo da imagem, você precisa criar uma nova imagem.
  2. Estrutura por camadas: os Docker Images são compostos por várias camadas. Cada camada representa uma mudança em relação à anterior. Isso permite o uso eficiente de espaço reutilizando camadas.
  3. Identificação: cada imagem tem um identificador único (SHA256 hash) e pode ter uma ou várias tags que facilitam o gerenciamento de versões das imagens.

Estrutura dos Docker Images:

Os Docker Images têm uma estrutura por camadas, onde cada camada é um sistema de arquivos. Essas camadas ficam armazenadas no cache do Docker e podem ser reutilizadas por outras imagens. A estrutura por camadas torna as imagens Docker leves e eficientes. Por exemplo, a primeira camada é o sistema operacional, a segunda é o Python, e a terceira é sua aplicação.

Componentes principais da estrutura dos Docker Images:

  1. Camada Base (Base Layer): a camada inicial da imagem, que geralmente é usada como base pra criar outras imagens. Por exemplo, pode ser uma versão mínima de um sistema operacional, como Ubuntu ou Alpine Linux.
  2. Camadas Intermediárias (Intermediate Layers): essas camadas são criadas com base nos comandos executados no Dockerfile (como instalar pacotes, copiar arquivos, etc.). Cada camada adiciona mudanças à anterior.
  3. Camada Final (Final Layer): a última camada, criada com base nas instruções CMD, ENTRYPOINT ou alterações dentro do container, é chamada de camada "do container". Essa camada é temporária e só existe enquanto o container está rodando.

1.2 Como funcionam as camadas dos Docker Images

Cada camada de uma imagem Docker é um conjunto de alterações em relação à camada anterior. Quando o Docker cria uma imagem, ele executa cada instrução do Dockerfile e adiciona uma nova camada para cada mudança.

Exemplo de criação de camadas:

  1. Imagem base: vamos começar com uma imagem base, por exemplo, ubuntu:20.04. Essa será a primeira camada.
  2. Instalação de pacotes: o comando RUN apt-get update && apt-get install -y python3 criará uma nova camada com o Python instalado.
  3. Cópia de arquivos: o comando COPY . /app adicionará os arquivos do aplicativo em uma nova camada.
  4. Configuração do diretório de trabalho: o comando WORKDIR /app criará uma camada que define o diretório de trabalho para os próximos comandos.

Vantagens do uso de camadas:

  1. Reutilização: as camadas podem ser reutilizadas por outras imagens. Por exemplo, se duas imagens usarem a mesma camada base, o Docker irá carregar essa camada apenas uma vez, economizando espaço e tempo.
  2. Cache: o Docker faz cache das camadas, o que acelera o processo de build das imagens. Se uma camada não foi alterada, o Docker a usa do cache em vez de reconstruí-la.
  3. Modularidade: a estrutura em camadas permite desenvolver imagens de maneira modular. Você pode atualizar ou alterar camadas específicas sem afetar toda a imagem.

Identificação e tags dos Docker Images:

Cada Docker Image é identificada por um hash único (SHA256), que é gerado com base no conteúdo da imagem e de todas as suas camadas. Para facilitar o gerenciamento e a versão das Docker Images, elas também podem ter tags.

Exemplo de identificação de imagem:

O próximo comando mostrará a lista de todas as imagens no seu sistema, incluindo o repositório, tags, identificadores e tamanhos:

Terminal

docker images

1.3 Trabalhando com Docker Images

Docker fornece um monte de comandos pra lidar com imagens. Aqui estão os principais:

  • Criando uma imagem: docker build
  • Iniciar um container a partir de uma imagem: docker run
  • Listar imagens: docker images
  • Deletar uma imagem: docker rmi
  • Procurar imagens no Docker Hub: docker search
  • Baixar uma imagem do Docker Hub: docker pull
  • Enviar uma imagem para o Docker Hub: docker push

Exemplo de criação e uso de uma Docker Image:

1. Criando um Dockerfile:

dockerfile

# Usando a imagem base do Ubuntu
FROM ubuntu:20.04

# Instalando Python
RUN apt-get update && apt-get install -y python3

# Copiando os arquivos da aplicação pro container
COPY . /app

# Definindo o diretório de trabalho
WORKDIR /app

# Declarando o comando pra rodar a aplicação
CMD ["python3", "app.py"]

2. Construindo a imagem:

O seguinte comando vai criar uma imagem chamada my_python_app, usando o Dockerfile no diretório atual:

Terminal

docker build -t my_python_app .

3. Iniciar um container a partir da imagem:

Use o seguinte comando pra iniciar um container a partir da imagem criada my_python_app rodando em background:

Terminal

docker run -d my_python_app
Comentários
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION