Fundamentos de Imagens Docker
O que são Imagens Docker?
Imagens Docker são modelos de leitura-somente usados para criar contêineres. Elas contêm ambientes de software pré-configurados, código de aplicação, dependências e configurações de tempo de execução. As imagens Docker servem como projetos para implantar ambientes de aplicação consistentes e reproduzíveis em diferentes sistemas.
Componentes Principais de Imagens Docker
graph TD
A[Imagem Docker] --> B[Camada Base]
A --> C[Camada de Aplicação]
A --> D[Camada de Configuração]
| Componente |
Descrição |
Exemplo |
| Camada Base |
Sistema operacional fundamental |
Ubuntu 22.04 |
| Camada de Aplicação |
Software e dependências |
Python 3.9, nginx |
| Camada de Configuração |
Configurações de tempo de execução |
Variáveis de ambiente |
Criando uma Imagem Docker Básica
Aqui está um exemplo de criação de uma imagem simples de aplicação web Python:
## Criar diretório do projeto
mkdir docker-demo
cd docker-demo
## Criar Dockerfile
touch Dockerfile
## Conteúdo do Dockerfile
cat > Dockerfile << EOL
FROM ubuntu:22.04
RUN apt-get update && apt-get install -y python3 python3-pip
WORKDIR /app
COPY app.py .
RUN pip3 install flask
EXPOSE 5000
CMD ["python3", "app.py"]
EOL
## Criar aplicação de exemplo Flask
cat > app.py << EOL
from flask import Flask
app = Flask(__name__)
@app.route('/')
def hello():
return "Exemplo de Imagem Docker"
if __name__ == '__main__':
app.run(host='0.0.0.0', port=5000)
EOL
## Construir imagem Docker
docker build -t python-web-app .
Camadas de Imagem e Armazenamento
Imagens Docker são compostas por múltiplas camadas de leitura-somente. Cada instrução no Dockerfile cria uma nova camada, permitindo armazenamento eficiente e criação rápida de imagens. Quando uma imagem é construída, o Docker armazena em cache essas camadas para otimizar os tempos de construção e reduzir o uso do espaço em disco.
Identificação de Imagem
Imagens Docker são identificadas exclusivamente por:
- Nome do repositório
- Tag
- ID da imagem
Exemplo: ubuntu:22.04 ou python-web-app:latest