
¿Te gustaría tener un sistema de almacenamiento similar a Amazon S3, pero corriendo en tu propio entorno local?
Con MinIO puedes hacerlo fácilmente, y lo mejor: es open source, rápido y totalmente compatible con el protocolo S3 de AWS.
En este artículo te mostraré cómo levantar MinIO usando Docker Compose, acceder a su interfaz gráfica y crear tu primer bucket para almacenar archivos.
¿Qué es MinIO?
MinIO es un servidor de almacenamiento de objetos (Object Storage) diseñado para ofrecer compatibilidad total con Amazon S3.
Esto significa que cualquier aplicación, SDK o librería que trabaje con S3 puede conectarse a MinIO sin cambios en el código, simplemente ajustando la URL del endpoint y las credenciales.
Al ser open source, puedes ejecutarlo en tu propia máquina, en un servidor local o incluso en la nube, manteniendo control total sobre tus datos.
Requisitos previos
Antes de comenzar, asegúrate de tener instalado:
- Docker
- Docker Compose
- Un editor de texto (por ejemplo, Visual Studio Code)
Paso 1: Crear el archivo docker-compose.yml
Crea un archivo llamado docker-compose.yml en una carpeta de tu elección y copia el siguiente contenido:
name: MinIO Example
version: '3.8'
services:
minio-example:
image: minio/minio:latest
container_name: minio-example
restart: always
command: server --console-address ":9001" /data
environment:
MINIO_ROOT_USER: minioadmin
MINIO_ROOT_PASSWORD: minioadmin
ports:
- "9000:9000" # API S3
- "9001:9001" # Consola web
volumes:
- ./minio_example_data:/data
Puedes cambiar el usuario y contraseña en las variables
MINIO_ROOT_USERyMINIO_ROOT_PASSWORD.
Paso 2: Levantar el contenedor
Abre una terminal en la carpeta donde está tu docker-compose.yml y ejecuta:
docker compose up -d
En pocos segundos verás que el contenedor minio se levanta y empieza a correr en segundo plano.
Puedes verificarlo con:
docker ps
Paso 3: Acceder a la consola de MinIO
Abre tu navegador y entra a:
http://localhost:9001
Se abrirá la consola de administración de MinIO, donde puedes iniciar sesión con el usuario y contraseña que definiste en el docker-compose.



Paso 4: Crear y explorar tu primer bucket
Una vez dentro de la interfaz, haz clic en “Create Bucket” y asigna un nombre, por ejemplo:
mi-primer-bucket
Dentro del bucket podrás:
- Subir archivos o carpetas
- Ver metadatos de cada objeto
- Generar URLs temporales de acceso
- Organizar tu contenido de forma sencilla
MinIO ofrece una experiencia visual muy parecida a la de AWS S3, pero corriendo directamente en tu máquina.
Paso 5: Conectar MinIO desde tus aplicaciones
Puedes conectar MinIO a cualquier aplicación que utilice S3.
Solo necesitas reemplazar los datos del endpoint y las credenciales:
| Parámetro | Valor de ejemplo |
|---|---|
| Endpoint | http://localhost:9000 |
| Access Key | minioadmin |
| Secret Key | minioadmin |
| Region | us-east-1 (por defecto) |
Así podrás integrarlo fácilmente con SDKs de AWS, Spring Boot, Python boto3, entre otros.
Conclusión
Con solo unos pocos comandos, puedes tener tu propio servidor S3 local completamente funcional.
MinIO es ideal para entornos de desarrollo, pruebas o proyectos internos donde se requiere almacenamiento escalable y control total sobre los datos.
En próximos artículos veremos cómo conectar MinIO desde una aplicación en Java o Python, y cómo automatizar la creación de buckets desde código.
Si quieres usarlo en producción puedes enlazar con nginx o apache2 o el reverse proxy de tu preferencia y que este apunte al docker container, a ambos puertos 9000 y 9001, para que tengas acceso al API y al navegador web desde el dominio de tu preferencia.
Recuerdas siempre ponerle SSL



