Stack 29/12/2025

Minio e Docker Compose: Implementação Simples para Armazenamento S3

Aprenda a implementar o Minio, um servidor de armazenamento S3 gratuito, usando Docker Compose. Configure seu ambiente local de forma rápida e eficiente.
EQ
Por Equipe Midiaville
Especialistas em desenvolvimento web
29 de Dezembro de 2025

Stack

No dinâmico mundo do desenvolvimento web, o armazenamento de arquivos de forma eficiente e escalável é crucial. Soluções como o Amazon S3 são amplamente utilizadas, mas para ambientes de desenvolvimento local ou projetos menores, uma alternativa como o Minio pode ser uma excelente opção. O Minio é um servidor de armazenamento de objetos compatível com a API S3, que pode ser facilmente implementado utilizando Docker Compose. Neste artigo, vamos guiá-lo através do processo de configuração do Minio com Docker Compose, permitindo que você aproveite os benefícios de um sistema de armazenamento robusto sem a complexidade de uma infraestrutura completa.

Por que Usar Minio?

Antes de mergulharmos na implementação, é importante entender as vantagens de usar o Minio, especialmente quando combinado com o Docker Compose. O Minio oferece:

  • Compatibilidade com S3: Facilita a migração para a nuvem ou a utilização de bibliotecas e ferramentas existentes que já funcionam com o Amazon S3.
  • Implementação Simples: Com o Docker Compose, a configuração e o gerenciamento do Minio se tornam incrivelmente fáceis.
  • Alto Desempenho: O Minio é projetado para oferecer alta performance em operações de leitura e escrita de arquivos.
  • Código Aberto: A liberdade de usar, modificar e distribuir o Minio contribui para a sua popularidade e para a sua comunidade ativa.
  • Flexibilidade: Pode ser executado em diversas plataformas, desde laptops até clusters Kubernetes.

Para desenvolvedores que buscam uma solução de armazenamento local para testes, prototipagem ou projetos de pequena escala, o Minio se apresenta como uma alternativa viável e poderosa.

Pré-requisitos

Para seguir este tutorial, você precisará ter o Docker e o Docker Compose instalados em sua máquina. Se você ainda não os tem, siga as instruções de instalação nos sites oficiais do Docker. Além disso, é recomendável ter um conhecimento básico sobre o funcionamento do Docker e do Docker Compose.

Configurando o Docker Compose para o Minio

O Docker Compose permite definir e gerenciar aplicações multi-container Docker. Vamos criar um arquivo docker-compose.yml que irá definir a configuração do nosso servidor Minio.

Definindo a Rede

O primeiro passo é definir uma rede para que o nosso container Minio possa se comunicar com outros containers, se necessário. Isso garante o isolamento e a segurança da nossa aplicação.

Adicione o seguinte bloco de código ao seu arquivo docker-compose.yml:


networks:
  minio-network:
    driver: bridge

Essa configuração cria uma rede do tipo bridge, que permite que os containers se comuniquem entre si, mas os isola de outras redes, a menos que você publique portas específicas.

Definindo o Volume

Para garantir que os dados armazenados no Minio persistam mesmo após a reinicialização do container, precisamos definir um volume. Volumes são diretórios no host que são montados dentro do container, permitindo que os dados sejam armazenados fora do container em si.

Adicione o seguinte bloco de código ao seu arquivo docker-compose.yml:


volumes:
  minio-volume:
    driver: local

Essa configuração cria um volume chamado minio-volume, que será utilizado para armazenar os dados do Minio. O driver local indica que o volume será armazenado no sistema de arquivos local do host.

Definindo o Serviço Minio

Agora, vamos definir o serviço Minio propriamente dito. Isso envolve especificar a imagem Docker a ser utilizada, as variáveis de ambiente, a rede, o volume e as portas.

Adicione o seguinte bloco de código ao seu arquivo docker-compose.yml:


services:
  minio:
    image: minio/minio
    environment:
      - MINIO_ROOT_USER=root
      - MINIO_ROOT_PASSWORD=rootpass123
      - MINIO_DEFAULT_BUCKETS=bucket
    networks:
      - minio-network
    volumes:
      - minio-volume:/data
    ports:
      - "9222:9000"
      - "9223:9001"
    command: [ "server", "--console-address", ":9001", "/data" ]

Vamos analisar cada parte dessa configuração:

  • image: minio/minio: Especifica a imagem Docker a ser utilizada, que é a imagem oficial do Minio.
  • environment: Define as variáveis de ambiente.
    • MINIO_ROOT_USER e MINIO_ROOT_PASSWORD: Define o usuário e a senha do usuário root do Minio. Importante: Em um ambiente de produção, utilize senhas fortes e altere o usuário padrão.
    • MINIO_DEFAULT_BUCKETS: Define os buckets padrão a serem criados no Minio.
  • networks: Associa o serviço Minio à rede minio-network que criamos anteriormente.
  • volumes: Monta o volume minio-volume no diretório /data dentro do container Minio, onde os dados serão armazenados.
  • ports: Expõe as portas 9000 (API) e 9001 (interface web) do container para o host. Mapeamos a porta 9000 para a porta 9222 e a porta 9001 para a porta 9223 no host. Isso é útil para evitar conflitos com outras aplicações que possam estar utilizando as portas padrão.
  • command: Define o comando a ser executado quando o container for iniciado. Neste caso, iniciamos o servidor Minio e especificamos o diretório de dados (/data) e a porta da interface web (:9001).

Arquivo docker-compose.yml Completo

Aqui está o arquivo docker-compose.yml completo:


networks:
  minio-network:
    driver: bridge

volumes:
  minio-volume:
    driver: local

services:
  minio:
    image: minio/minio
    environment:
      - MINIO_ROOT_USER=root
      - MINIO_ROOT_PASSWORD=rootpass123
      - MINIO_DEFAULT_BUCKETS=bucket
    networks:
      - minio-network
    volumes:
      - minio-volume:/data
    ports:
      - "9222:9000"
      - "9223:9001"
    command: [ "server", "--console-address", ":9001", "/data" ]

Executando o Minio com Docker Compose

Com o arquivo docker-compose.yml criado, basta executar o seguinte comando no diretório onde o arquivo está localizado:

docker-compose up -d

O comando docker-compose up irá criar e iniciar os containers definidos no arquivo docker-compose.yml. A opção -d executa os containers em modo detached, ou seja, em segundo plano.

Após a execução do comando, você poderá acessar a interface web do Minio através do seu navegador no endereço http://localhost:9223. Utilize as credenciais root para o usuário e rootpass123 para a senha.

Conclusão

Neste artigo, demonstramos como implementar o Minio utilizando o Docker Compose de forma simples e eficiente. Essa abordagem permite que você crie um ambiente de desenvolvimento local com um servidor de armazenamento compatível com S3, facilitando o teste e a prototipagem de suas aplicações. A combinação do Minio com o Docker Compose oferece flexibilidade, portabilidade e facilidade de gerenciamento, tornando-se uma ferramenta valiosa para desenvolvedores web.

O futuro do armazenamento de dados em nuvem aponta para soluções cada vez mais descentralizadas e flexíveis. Ferramentas como Minio e Docker Compose, que permitem a criação de ambientes de desenvolvimento e produção consistentes e portáveis, desempenharão um papel fundamental nessa evolução. À medida que a demanda por aplicações web escaláveis e resilientes continua a crescer, a capacidade de implementar e gerenciar sistemas de armazenamento de forma eficiente se tornará uma habilidade essencial para os desenvolvedores.

Compartilhe este artigo

Artigos Relacionados

Continue explorando nossos insights sobre desenvolvimento web e estratégias digitais

Precisa de Uma Solução Personalizada?

Nossa equipe especializada está pronta para desenvolver a solução ideal para o seu negócio.