Lendo Dockerfiles e executando contêineres

Conceitos de Containerização e Virtualização

Julia Ostheimer

Freelance AI Consultant

Revisão de termos Docker

 

Do Dockerfile ao contêiner Docker

Conceitos de Containerização e Virtualização

Instruções Docker vs. comandos Docker

  • Instruções Docker definem como construir uma imagem

Instruções Docker em Dockerfile

  • Comandos Docker: comandos via Command Line Interface (CLI)

Comandos Docker no CLI

Conceitos de Containerização e Virtualização

Formato de um Dockerfile

 

Dockerfile - Comentário

Conceitos de Containerização e Virtualização

Formato de um Dockerfile

 

Dockerfile - Instrução

Conceitos de Containerização e Virtualização

Formato de um Dockerfile

 

Dockerfile - Comando da instrução Docker

Conceitos de Containerização e Virtualização

Formato de um Dockerfile

 

Dockerfile - Argumento da instrução Docker

Conceitos de Containerização e Virtualização

Ordem sequencial em Dockerfiles

  • Execução em ordem sequencial
  • Início de um Dockerfile:
    • Metadados
    • Comentários
    • Argumentos
    • Instrução FROM
Conceitos de Containerização e Virtualização

Visão geral das instruções Docker

  • Instruções Docker importantes
    • FROM
    • COPY
    • RUN
    • ENTRYPOINT
Conceitos de Containerização e Virtualização

Instrução FROM

  • Especifica uma imagem Docker existente
  • Define a imagem base
    • "Ponto de partida"  

Sintaxe:

FROM <name_of_image>

Exemplo:

# Define a imagem base
FROM python:3.10
Conceitos de Containerização e Virtualização

Instrução COPY

  • Copia arquivos ou diretórios
    • Da origem (<source>) para o destino (<destination>)
    • Arquivos usados nas próximas instruções  

Sintaxe:

COPY <source> <destination>

Exemplo:

# Copia arquivos/pastas para a pasta principal do contêiner
COPY . .
Conceitos de Containerização e Virtualização

Instrução RUN

  • Executa um comando no contêiner
    • Qualquer comando que rodaria no CLI

 

Sintaxe:

RUN <command>

Exemplo:

# Instala as dependências do app
RUN pip install -r requirements.txt
Conceitos de Containerização e Virtualização

Instrução ENTRYPOINT

  • Define o comportamento padrão do contêiner
    • Comando a executar na inicialização
    • Objetivo principal do contêiner  

Sintaxe:

ENTRYPOINT ["command", "argument"]

Exemplo:

# Roda o script quando o contêiner inicia
ENTRYPOINT ["python", "hello_world.py"]
Conceitos de Containerização e Virtualização

Montando instruções no Dockerfile

# Define a imagem base
FROM python:3.10
Conceitos de Containerização e Virtualização

Montando instruções no Dockerfile

# Define a imagem base
FROM python:3.10

# Copia arquivos/pastas para a pasta principal do contêiner
COPY . .
Conceitos de Containerização e Virtualização

Montando instruções no Dockerfile

# Define a imagem base
FROM python:3.10

# Copia arquivos/pastas para a pasta principal do contêiner
COPY . .

# Instala as dependências do app
RUN pip install -r requirements.txt
Conceitos de Containerização e Virtualização

Montando instruções no Dockerfile

# Define a imagem base
FROM python:3.10

# Copia arquivos/pastas para a pasta principal do contêiner
COPY . .

# Instala as dependências do app
RUN pip install -r requirements.txt

# Roda o script quando o contêiner inicia
ENTRYPOINT ["python", "hello_world.py"]
Conceitos de Containerização e Virtualização

Comando docker build

  • Constrói imagem Docker a partir de um Dockerfile
    • Dockerfile precisa estar no contexto de build (<context>)
    • Executado como comando no cliente Docker via CLI

 

Sintaxe:

docker build <context>
Conceitos de Containerização e Virtualização

Comando docker run

  • Cria e roda contêiner Docker a partir de uma imagem
    • A imagem deve ser informada como argumento (<name_of_image>)
    • Executado como comando no cliente Docker via CLI

 

Sintaxe:

docker run <name_of_image>
Conceitos de Containerização e Virtualização

Vamos praticar!

Conceitos de Containerização e Virtualização

Preparing Video For Download...