Docker na prática: como construir uma aplicação?

Aprenda a construir sua primeira aplicação web com Docker! Este guia prático te ensina desde os conceitos básicos até a implementação passo a passo, usando Python e Flask. Crie um contêiner Docker, execute sua aplicação e explore as vantagens da conteinerização. Comece agora!

Docker na prática: como construir uma aplicação?

Docker na prática: como construir uma aplicação?

Imagine um mundo onde você pode desenvolver uma aplicação em seu ambiente local, com todas as suas bibliotecas e dependências, e então, simplesmente, movê-la para qualquer outro lugar — seja um servidor de produção, um cluster na nuvem ou até mesmo o computador do seu colega — sem se preocupar com conflitos de versão ou configurações complexas. Esse mundo, que parece mágico, é o mundo do Docker!

Neste guia prático, vamos mergulhar no universo do Docker e aprender como construir uma aplicação web simples usando essa poderosa ferramenta de conteinerização. Abordaremos desde os conceitos básicos até a implementação passo a passo, capacitando você a turbinar seu fluxo de desenvolvimento e gerenciar suas aplicações com mais eficiência.

Entendendo o básico: O que é Docker?

Docker é uma plataforma open source que permite empacotar aplicações e suas dependências em unidades padronizadas chamadas "contêineres". Esses contêineres são leves, portáteis e executam em qualquer lugar que o Docker esteja instalado, garantindo consistência e previsibilidade em diferentes ambientes.

Pense em um contêiner como uma caixa que contém tudo o que sua aplicação precisa para funcionar: código-fonte, bibliotecas, ferramentas do sistema e configurações. Essa caixa é isolada do sistema operacional host, o que significa que sua aplicação roda em um ambiente próprio, sem interferir ou ser afetada por outros softwares no mesmo sistema.

Por que usar Docker?

O Docker oferece uma série de vantagens significativas para desenvolvedores e equipes de operações, tornando-se uma ferramenta essencial no desenvolvimento de software moderno:

  • **Portabilidade:** Uma vez que um contêiner Docker é construído, ele pode ser executado em qualquer máquina com o Docker instalado, seja um laptop, um servidor físico ou uma instância na nuvem.
  • **Consistência:** O Docker garante que a aplicação seja executada da mesma forma em qualquer ambiente, eliminando os famosos problemas de "funciona na minha máquina".
  • **Isolamento:** Os contêineres Docker são isolados uns dos outros e do sistema operacional host, o que aumenta a segurança e evita conflitos de dependência.
  • **Eficiência:** Os contêineres Docker são leves e iniciam rapidamente, pois compartilham o kernel do sistema operacional host.
  • **Escalabilidade:** O Docker facilita o escalonamento horizontal de aplicações, permitindo que você crie e gerencie múltiplas instâncias de contêineres em um cluster.

Construindo nossa aplicação: Mãos à obra!

Para ilustrar o poder do Docker na prática, vamos construir uma aplicação web simples em Python usando o framework Flask. Nossa aplicação exibirá uma mensagem de boas-vindas e servirá como base para explorarmos os principais conceitos do Docker.

Passo 1: Configurando o ambiente

Antes de começarmos, precisamos ter o Docker instalado em nossa máquina. Acesse o site oficial do Docker (https://www.docker.com/) e siga as instruções de instalação para o seu sistema operacional.

Passo 2: Criando o projeto

Crie uma pasta para o nosso projeto e navegue até ela no terminal:

mkdir meu-projeto-docker
cd meu-projeto-docker

Passo 3: Escrevendo o código da aplicação

Crie um arquivo chamado app.py dentro da pasta do projeto e adicione o seguinte código Python:

from flask import Flask

app = Flask(__name__)

@app.route("/")
def index():
    return "Olá, mundo! Bem-vindo ao meu primeiro contêiner Docker!"

if __name__ == "__main__":
    app.run(debug=True, host="0.0.0.0")

Este código cria uma aplicação Flask simples que escuta na porta 5000 e exibe a mensagem "Olá, mundo! Bem-vindo ao meu primeiro contêiner Docker!" quando acessada.

Passo 4: Criando o Dockerfile

O próximo passo é criar um arquivo chamado Dockerfile na raiz do nosso projeto. O Dockerfile é um script que contém instruções para o Docker construir a imagem da nossa aplicação.

FROM python:3.9-slim

WORKDIR /app

COPY requirements.txt ./
RUN pip install --no-cache-dir -r requirements.txt

COPY . .

CMD ["python", "app.py"]

Vamos analisar cada linha do nosso Dockerfile:

  • FROM python:3.9-slim: Define a imagem base para o nosso contêiner. Estamos usando a imagem oficial do Python 3.9-slim, que é uma versão enxuta do Python.
  • WORKDIR /app: Define o diretório de trabalho dentro do contêiner como /app.
  • COPY requirements.txt ./: Copia o arquivo requirements.txt (que ainda vamos criar) para o diretório /app dentro do contêiner.
  • RUN pip install --no-cache-dir -r requirements.txt: Instala as dependências do projeto listadas no arquivo requirements.txt usando o pip.
  • COPY . .: Copia todo o conteúdo do diretório do projeto para o diretório /app dentro do contêiner.
  • CMD ["python", "app.py"]: Define o comando que será executado quando o contêiner for iniciado. Neste caso, estamos executando o arquivo app.py usando o interpretador Python.

Passo 5: Criando o arquivo requirements.txt

Crie um arquivo chamado requirements.txt na raiz do projeto e adicione a seguinte linha:

Flask

Este arquivo lista as dependências do nosso projeto, que no momento é apenas o framework Flask.

Passo 6: Construindo a imagem Docker

Com o Dockerfile e o requirements.txt prontos, podemos construir a imagem Docker da nossa aplicação. No terminal, execute o seguinte comando na raiz do projeto:

docker build -t minha-aplicacao-docker .

Este comando instrui o Docker a construir a imagem com base no Dockerfile na pasta atual (.) e atribui a ela o nome minha-aplicacao-docker.

Passo 7: Executando o contêiner Docker

Após a conclusão do processo de construção da imagem, podemos iniciar um contêiner a partir dela:

docker run -d -p 5000:5000 minha-aplicacao-docker

Este comando inicia um contêiner em segundo plano (-d) e mapeia a porta 5000 do contêiner para a porta 5000 da máquina host (-p 5000:5000).

Passo 8: Acessando a aplicação

Agora você pode acessar sua aplicação em um navegador web no endereço http://localhost:5000/. Você deverá ver a mensagem "Olá, mundo! Bem-vindo ao meu primeiro contêiner Docker!".

Parabéns! Você acaba de construir e executar sua primeira aplicação em um contêiner Docker.

Conclusão

Neste guia, exploramos os conceitos básicos do Docker e aprendemos como construir uma aplicação web simples usando essa poderosa ferramenta. Vimos como o Docker simplifica o processo de desenvolvimento, garantindo portabilidade, consistência e isolamento para nossas aplicações.

Com o conhecimento adquirido neste guia, você está pronto para começar a usar o Docker em seus próprios projetos e experimentar os benefícios da conteinerização. Continue explorando as funcionalidades do Docker e descubra como ele pode levar seus projetos para o próximo nível.

Qual é a sua reação?

like

dislike

love

funny

angry

sad

wow