If you’re looking for lightweight, self-hosted, and S3-compatible object storage, MinIO is one of the best solutions available. Whether you need it for storing backups, logs, media files, or cloud-native applications, MinIO provides a fast, scalable, and secure storage layer that’s easy to deploy.
In this post, we’ll walk you through how to install and configure MinIO on a Linux server using Docker. By the end, you’ll have a fully functional object storage system similar to Amazon S3, ready for storing anything from application logs to large media backups.
Why Use MinIO?
MinIO is ideal for developers and sysadmins who want:
- S3-compatible object storage without the AWS price tag.
- A self-hosted backup destination for files, logs, or Docker volumes.
- Lightning-fast performance (native Go binary).
- Simple CLI/API access for automation.
Use cases include:
- Hosting backup buckets for servers or applications.
- Storing audit or monitoring logs.
- Serving public/private files to users.
- Integrating into CI/CD pipelines.
Before we begin:
- A Linux server or VPS (Ubuntu/Debian/RHEL-based). You can get a ARM VPS here.
- Docker and Docker Compose installed.
- At least 2GB RAM (for minimal usage).
Step 1: Create a Docker Compose File
Create a directory for MinIO:
mkdir -p ~/Docker/MinIO && cd ~/Docker/MinIO
sudo mkdir -p /data && sudo chown 1000:1000 /data
Then, create a docker-compose.yml
file with the following content:
services:
minio:
image: minio/minio:latest
container_name: minio
ports:
- "9000:9000" # S3 API
- "9001:9001" # Web UI
environment:
MINIO_ROOT_USER: minioadmin
MINIO_ROOT_PASSWORD: minioadmin123
volumes:
- /data:/data
command: server /data
restart: unless-stopped
This setup:
- Exposes the S3-compatible API on port
9000
- Exposes the admin web console on port
9001
- Sets a default username/password (
minioadmin
/minioadmin123
)
Step 2: Launch MinIO
Start MinIO using Docker Compose:
docker compose up -d
Step 3: Access the MinIO Console
Open your browser and go to: http://your-server-ip:9001
Login using the credentials:
- Username:
minioadmin
- Password:
minioadmin123
You’ll land on the clean and modern MinIO dashboard where you can create buckets, upload files, and manage access keys.
Step 4: Create Buckets & Upload Files
To create a bucket:
- Go to the “Buckets” section.
- Click “+ Create Bucket”
- Name your bucket (e.g.,
backups
orlogs
) - Optionally make it public or private.
You can now start uploading files via the UI, or use the mc
CLI tool (MinIO Client) for automated backups.

How MinIO Uses and Mounts Storage via Docker
in this setup, MinIO uses the host machine’s local storage by mounting the /data
directory directly into the Docker container. This is done through a Docker bind mount, specified in the docker-compose.yml
file under the volumes
section. Instead of using Docker’s internal named volumes, this approach provides greater visibility and control over the stored data.
Inside the container, MinIO is instructed to use the /data
directory as its storage root. This means any files, buckets, or objects uploaded to MinIO via the S3 API or web interface are physically stored on the host in /data
. The command: server /data
line tells MinIO to treat that directory as its backend storage.
By mounting /data
from the host into the container, all data persists even if the container is stopped, restarted, or recreated. This makes it ideal for backup targets, log archives, or any application needing reliable object storage. You can inspect or back up your MinIO data directly from the host system at /data
, without needing to enter the container.
This simple yet powerful setup ensures data durability while keeping configuration minimal and transparent.
Security Tips
- Change the default credentials immediately after installation.
- Use reverse proxy (e.g. Nginx) and enable HTTPS with Let’s Encrypt.
- Regularly rotate access tokens or use service accounts for apps.
Conclusion
MinIO is a powerful and lightweight solution for anyone looking to deploy self-hosted object storage. It’s perfect for developers, DevOps engineers, or sysadmins looking to move away from vendor lock-in and take control of their data.
With just a few lines of Docker and minimal config, you now have your own secure, S3-compatible object store — ideal for backups, logs, or media files.
Power Your Projects with vpszen.com VPS Solutions
Looking for reliable hosting to run your Linux servers and host your next big project? VpsZen.com has you covered with top-tier VPS options tailored to your needs.
Choose from ARM64 VPS Servers for energy-efficient performance, or Root VPS Servers for virtual servers with dedicated resources.