Como configurar um ambiente de desenvolvimento Docker no macOS ou Windows

DockerBeginner
Pratique Agora

Introdução

O Docker tornou-se uma ferramenta essencial para desenvolvedores, permitindo-lhes criar e gerenciar aplicações em contêineres com facilidade. Este tutorial guiará você pelo processo de configurar um ambiente de desenvolvimento Docker no macOS ou Windows, garantindo que você tenha as ferramentas e o conhecimento necessários para começar a construir e implantar aplicações baseadas em Docker.

Compreendendo os Fundamentos do Docker

O que é o Docker?

Docker é uma plataforma de código aberto que permite aos desenvolvedores construir, implantar e executar aplicações em um ambiente consistente e isolado, chamado contêineres. Os contêineres empacotam uma aplicação e todas as suas dependências, garantindo que a aplicação execute de forma confiável e consistente, independentemente da infraestrutura subjacente.

Contêineres Docker

Um contêiner Docker é um pacote leve, autônomo e executável que inclui tudo o que é necessário para executar uma aplicação – o código, o tempo de execução, as ferramentas do sistema e as bibliotecas. Os contêineres são isolados uns dos outros e do sistema operacional hospedeiro, proporcionando um ambiente consistente e confiável para a execução da aplicação.

graph LR A[Aplicação] --> B[Dependências] B --> C[Tempo de execução] C --> D[SO] D --> E[Contêiner Docker] E --> F[Host Docker]

Imagens Docker

Imagens Docker são os blocos de construção dos contêineres. Uma imagem é um modelo de leitura somente, que contém as instruções para criar um contêiner Docker. As imagens são criadas usando um Dockerfile, que é um arquivo de texto que contém todos os comandos necessários para construir a imagem.

Registro Docker

O Registro Docker é um sistema de armazenamento e distribuição de imagens Docker. O registro público mais popular é o Docker Hub, que fornece uma vasta coleção de imagens pré-construídas para várias aplicações e serviços.

Arquitetura Docker

O Docker utiliza uma arquitetura cliente-servidor, onde o cliente Docker se comunica com o daemon Docker, que é responsável por construir, executar e gerenciar os contêineres Docker.

Componente Descrição
Cliente Docker A interface de usuário do sistema Docker. Permite que os usuários interajam com o daemon Docker.
Daemon Docker O processo em segundo plano que gerencia os contêineres e imagens Docker.
Registro Docker Um repositório para armazenar e distribuir imagens Docker.
Rede Docker Permite que os contêineres se comuniquem entre si e com o mundo exterior.
Volumes Docker Fornece uma maneira de persistir dados gerados e usados por contêineres Docker.

Instalando o Docker no macOS ou Windows

Instalando o Docker no macOS

  1. Visite o site Docker e faça o download do Docker Desktop para Mac.
  2. Execute o instalador e siga as instruções na tela para concluir a instalação.
  3. Após a instalação, o ícone do Docker aparecerá na barra de menu, indicando que o Docker está em execução.

Instalando o Docker no Windows

  1. Visite o site Docker e faça o download do Docker Desktop para Windows.
  2. Execute o instalador e siga as instruções na tela para concluir a instalação.
  3. Após a instalação, o ícone do Docker aparecerá na bandeja do sistema, indicando que o Docker está em execução.

Verificando a Instalação

Após instalar o Docker, você pode verificar a instalação abrindo um terminal (macOS) ou o PowerShell (Windows) e executando o seguinte comando:

docker version

Isso exibirá a versão do cliente Docker e do servidor Docker (daemon) instalado em seu sistema.

Instalação do Docker Compose

Docker Compose é uma ferramenta para definir e executar aplicações Docker multi-contêiner. Para instalar o Docker Compose:

  1. Visite o repositório Docker Compose no GitHub e faça o download da versão mais recente do Docker Compose para seu sistema operacional.
  2. Torne o arquivo baixado executável executando o seguinte comando (para Linux/macOS):
    chmod +x docker-compose
  3. Mova o binário Docker Compose para um diretório no PATH do seu sistema, como /usr/local/bin/ ou ~/bin/.

Agora você pode verificar a instalação executando:

docker-compose version

Isso exibirá a versão do Docker Compose instalada em seu sistema.

Criando Ambientes de Desenvolvimento com Docker

Criando um Dockerfile

Um Dockerfile é um arquivo de texto que contém todos os comandos necessários para construir uma imagem Docker. Aqui está um exemplo de Dockerfile para uma aplicação web Python simples:

FROM python:3.9-slim
WORKDIR /app
COPY requirements.txt .
RUN pip install --no-cache-dir -r requirements.txt
COPY . .
CMD ["python", "app.py"]

Este Dockerfile:

  1. Inicia a partir da imagem base python:3.9-slim.
  2. Define o diretório de trabalho para /app.
  3. Copia o arquivo requirements.txt para o diretório de trabalho.
  4. Instala as dependências Python listadas em requirements.txt.
  5. Copia o código da aplicação para o diretório de trabalho.
  6. Especifica o comando para executar a aplicação (python app.py).

Construindo uma Imagem Docker

Para construir uma imagem Docker a partir do Dockerfile, execute o seguinte comando no mesmo diretório do Dockerfile:

docker build -t my-python-app .

Isso construirá uma imagem Docker com a tag my-python-app.

Executando um Contêiner Docker

Para executar um contêiner Docker a partir da imagem my-python-app, use o seguinte comando:

docker run -p 8080:8080 my-python-app

Isso iniciará um novo contêiner e mapeará a porta 8080 no host para a porta 8080 no contêiner.

Desenvolvimento com Docker Compose

Docker Compose é uma ferramenta para definir e executar aplicações Docker multi-contêiner. Aqui está um exemplo de arquivo docker-compose.yml para uma aplicação web simples com um banco de dados:

version: "3"
services:
  web:
    build: .
    ports:
      - 8080:8080
    depends_on:
      - db
  db:
    image: postgres:13
    environment:
      POSTGRES_DB: myapp
      POSTGRES_USER: myapp
      POSTGRES_PASSWORD: secret
    volumes:
      - db-data:/var/lib/postgresql/data
volumes:
  db-data:

Este arquivo docker-compose.yml define dois serviços: web e db. O serviço web constrói uma imagem Docker a partir do diretório atual e mapeia a porta 8080 no host para a porta 8080 no contêiner. O serviço db utiliza a imagem oficial do PostgreSQL e configura um banco de dados para a aplicação.

Para iniciar a aplicação, execute:

docker-compose up -d

Isso iniciará os contêineres web e db em segundo plano.

Resumo

Seguindo este tutorial, você aprenderá a instalar o Docker em seu computador macOS ou Windows, compreenderá os fundamentos do Docker e construirá um ambiente de desenvolvimento Docker personalizado para suas necessidades. Com essas habilidades, você poderá otimizar seu fluxo de trabalho de desenvolvimento e aproveitar os benefícios que o Docker oferece, como ambientes consistentes e reproduzíveis, implantação simplificada e escalabilidade aprimorada.