Introdução ao Docker: Guia Prático para Iniciantes

Já se deparou com a frustração de um software que funciona perfeitamente na sua máquina, mas falha em outros ambientes? O Docker para DevOps chegou para solucionar este problema, economizando milhões em custos computacionais para empresas. Vamos explorar como o Docker revolucionou a indústria de DevOps e aprender a criar um Dockerfile para monitorar o uso de CPU e memória em aplicações cloud-native. Prepare seu café e embarque nesta jornada!

O que é Docker? Entendendo Contêineres e sua Importância

O Docker é uma plataforma que permite desenvolver, transportar e executar aplicações em contêineres. Mas, o que são contêineres? Imagine que o Docker é uma ferramenta que cria um blueprint da sua aplicação. Com este blueprint, podemos executar a aplicação dentro de um contêiner.

Um contêiner é como um sistema operacional leve que inclui tudo o que é necessário para rodar uma aplicação: suas dependências, bibliotecas e configurações. O fluxo de trabalho básico do Docker envolve criar um Dockerfile, definir como a aplicação deve ser construída e executada, gerar uma Docker Image (o blueprint) e, finalmente, usar essa imagem para rodar um Docker Container.

Por que usar Docker?

À primeira vista, o Docker pode parecer complicado, mas ele é uma solução que facilita muito o dia a dia. Antes do Docker, usávamos Máquinas Virtuais (VMs) para executar aplicações na nuvem. VMs frequentemente desperdiçam recursos, elevando os custos. Com o Docker, usamos contêineres leves que rodam em VMs, tornando as aplicações mais rápidas e eficientes.

Ao criar um Dockerfile, escolhemos uma imagem base para o projeto (como Ubuntu, Alpine ou Python). Isso garante que todos os desenvolvedores e servidores usem o mesmo ambiente, eliminando o problema do “funciona na minha máquina, mas não na sua”.

Com o Docker, é possível executar várias aplicações na mesma VM. Antes, geralmente só podíamos rodar uma aplicação por VM. Isso significa melhor utilização de recursos e custos de nuvem mais baixos. Agora que entendemos o poder do Docker, vamos construir algo interessante com ele!

Instalando o Docker e Executando seu Primeiro Contêiner

Chega de teoria, vamos à prática! O primeiro passo é instalar o Docker no seu sistema:

Para usuários de Windows e macOS, baixe o Docker Desktop no site oficial do Docker. Ele oferece uma GUI fácil de usar junto com a Docker CLI.

Se você usa Linux, pode instalar o Docker via comandos no terminal. No Ubuntu, execute:

sudo apt update -y
sudo apt install docker.io -y
sudo usermod -aG docker $USER && newgrp docker
docker --version  # This will display the installed Docker version.

Após a instalação, o Docker estará pronto para uso!

Entendendo o DockerHub e o Gerenciamento de Imagens

Já falamos sobre como os Dockerfiles nos ajudam a criar Docker images. Mas, e se perdermos a imagem que criamos? Para evitar isso, temos o DockerHub, um repositório na nuvem onde podemos armazenar e compartilhar imagens Docker, como um GitHub para códigos.

  • Repositórios Públicos: Abertos para todos.
  • Repositórios Privados: Acessíveis apenas a usuários autorizados.

Isso permite que equipes colaborem e implementem aplicações de forma consistente em diferentes ambientes.

Executando seu Primeiro Contêiner Docker

Vamos testar o Docker executando um contêiner de demonstração:

docker run -d -p 8080:80 docker/welcome-to-docker

Detalhando o comando:

  • docker run → Executa um novo contêiner.
  • -d → Executa o contêiner em detached mode (em segundo plano).
  • -p 8080:80 → Mapeia a porta 8080 da sua máquina local para a porta 80 dentro do contêiner.
  • docker/welcome-to-docker → A imagem que estamos executando, pré-configurada para exibir uma mensagem de boas-vindas.

Abra seu navegador e acesse:

http://localhost:8080

Você deverá ver uma página de “Parabéns” do Docker! Esta página é servida pela imagem docker/welcome-to-docker, que contém um servidor web simples (NGINX ou Apache) exibindo a mensagem de boas-vindas. Agora que você executou seu primeiro contêiner Docker, vamos construir o nosso próprio!

Construindo Nossa Própria Imagem Docker: App de Monitoramento na Nuvem

Após experimentar um contêiner Docker de demonstração, é hora de construir nossa própria imagem Docker! Utilizaremos uma aplicação de monitoramento na nuvem baseada em Flask que exibe métricas de CPU e memória da máquina em que está rodando.

Clonando o Repositório do Projeto

Clone o projeto do GitHub:

git clone https://github.com/Pravesh-Sudha/cloud-native-monitoring-app.git

Navegue até o diretório do projeto:

cd cloud-native-monitoring-app

Dentro deste diretório, você encontrará um Dockerfile. Vamos analisá-lo!

Entendendo o Dockerfile

Aqui está o Dockerfile para nosso aplicativo de monitoramento na nuvem baseado em Flask:

# 1️⃣ Set the base image
FROM python:3.9-slim-buster  

# 2️⃣ Set the working directory inside the container
WORKDIR /app  

# 3️⃣ Copy the dependency file into the container
COPY requirements.txt .  

# 4️⃣ Install dependencies
RUN pip3 install --no-cache-dir -r requirements.txt  

# 5️⃣ Copy the entire project into the container
COPY . .  

# 6️⃣ Set environment variables
ENV FLASK_RUN_HOST=0.0.0.0  

# 7️⃣ Expose the application’s port
EXPOSE 5000  

# 8️⃣ Define the command to run the Flask app
CMD ["flask", "run"]

Detalhando o Dockerfile

📌 FROM python:3.9-slim-buster → Define nossa imagem base.

  • Usamos python:3.9-slim-buster, uma versão leve do Python 3.9.
  • Imagens slim são menores, tornando o contêiner mais eficiente.

📌 WORKDIR /app → Define o diretório de trabalho dentro do contêiner.

  • Assim como criamos uma pasta para nosso projeto, definimos /app como o diretório onde o código da nossa aplicação residirá dentro do contêiner.

📌 COPY requirements.txt . → Copia requirements.txt para o contêiner.

  • Este arquivo contém todas as dependências necessárias para nosso aplicativo Flask.

📌 RUN pip3 install --no-cache-dir -r requirements.txt → Instala os pacotes Python necessários.

📌 COPY . . → Copia todos os arquivos da nossa aplicação para o contêiner.

📌 ENV FLASK_RUN_HOST=0.0.0.0 → Define variáveis de ambiente.

  • Definimos FLASK_RUN_HOST=0.0.0.0 para permitir que nosso aplicativo rode corretamente dentro de um contêiner ou VM.

📌 EXPOSE 5000 → Expõe a porta 5000, a porta padrão para aplicações Flask.

📌 CMD ["flask", "run"] → Define o comando que iniciará nosso aplicativo Flask.

Construindo a Imagem Docker

Crie uma imagem Docker a partir deste projeto. Execute o seguinte comando:

docker build -t my-app:v1 .

🔹 -t my-app:v1 → Marca a imagem como my-app com a versão v1.

🔹 . → Diz ao Docker para usar o diretório atual como o contexto de construção.

Executando o Contêiner Docker

Após a construção bem-sucedida da imagem, execute-a como um contêiner Docker:

docker run -d -p 5000:5000 my-app:v1

🔹 -d → Executa o contêiner em detached mode (em segundo plano).

🔹 -p 5000:5000 → Mapeia a porta 5000 da sua máquina local para a porta 5000 dentro do contêiner.

Abra seu navegador e acesse:

http://localhost:5000

Você deverá ver o aplicativo rodando! A cada atualização da página, as métricas de uso de CPU e memória serão atualizadas dinamicamente. Agora que construímos e executamos com sucesso nosso aplicativo de monitoramento na nuvem Dockerized, podemos explorar mais sobre a Xiaomi e seus dispositivos, como a Xiaomi 15 Ultra que bateu recorde de vendas no primeiro dia.

O Ecossistema e as Novidades

Com o sistema Docker funcionando, você consegue ter mais desempenho em seus hardwares, e com isso, você pode otimizar um PC com tela dobrável, algo que vem ganhando mais espaço no mundo da tecnologia e aumentando o interesse do público. Se você pretende investir em ações, é interessante saber sobre o sucesso do Bitcoin, que se aproxima dos R$ 100 mil com sucesso em ICO.

Sabemos que o universo da tecnologia está em constante evolução e não podemos deixar de lado a Inteligência Artificial, que vem ganhando mais espaço, principalmente quando o assunto é IA e Telecomunicações, pois as inovações estão a caminho e isso não podemos negar.

Se você pretende investir em algo novo e tecnológico, mas não sabe o que, analise a possibilidade de um tablet com boa tela e bateria, como o TCL NXTPaper 11 Plus que tem como objetivo a redução de fadiga ocular e alta qualidade de imagem, sendo uma ótima opção.

Em resumo, você deu os primeiros passos no mundo do Docker ao aprender como ele resolve problemas reais de implementação de software, executou um contêiner de demonstração e até mesmo Dockerizou um aplicativo de monitoramento na nuvem baseado em Flask. Vimos o que é Docker, porque usá-lo e como instalá-lo e criar um Dockerfile. Agora, experimente o Docker Compose, envie sua imagem para o Docker Hub ou implemente seu aplicativo em Kubernetes!

Este conteúdo foi auxiliado por Inteligência Artificial, mas escrito e revisado por um humano.

Via dev.to

Leave a Comment

Exit mobile version