Instructions for installing MinIO with Docker

Introduction

MinIO is a high-performance, open-source Object Storage system that is fully compatible with the Amazon S3 API. Key advantages include ultra-fast data processing speeds, a lightweight cloud-native architecture, easy scalability, and high security with advanced data encryption capabilities.

Detail

First, create a docker-compose.yml file with the following content, changing the YOUR_ACCESS_KEY and YOUR_SECRET_KEY values to suit your needs:

services:
minio:
image: quay.io/minio/minio:latest
container_name: minio-dev
ports:
- "9000:9000"
- "9001:9001"
environment:
MINIO_ROOT_USER: YOUR_ACCESS_KEY
MINIO_ROOT_PASSWORD: YOUR_SECRET_KEY
volumes:
- minio_data:/data
command: server /data --console-address ":9001"

volumes:
minio_data:


Run the docker container as follows:

docker-compose up -d


If you want to use an interface for easier management, you need to install the MinIO Client (mc) as follows:

brew install minio/stable/mc

mc --version
mc version RELEASE.2025-08-13T08-35-41Z (commit-id=7394ce0dd2a80935aded936b09fa12cbb3cb8096)
Runtime: go1.24.6 darwin/arm64
Copyright (c) 2015-2025 MinIO, Inc.
License GNU AGPLv3 <https://www.gnu.org/licenses/agpl-3.0.html>

mc alias set myminio http://localhost:9000 YOUR_ACCESS_KEY YOUR_SECRET_KEY

  • The brew command above is for MacOS; please change it accordingly for the OS you are using.
  • After installation, check the version used and create an alias to connect to the running MinIO Docker container.


Here are some commands to use MinIO:

mc mb myminio/test
mc cp test myminio/test
mc ls myminio/test
mc cp myminio/test/test.txt ./downloaded_test.txt

  • mc mb myminio/test: Create a new bucket named test on the myminio alias.
  • mc cp test myminio/test: Copy the test file or directory to the test bucket of myminio.
  • mc ls myminio/test: List the files and directories inside the test bucket.
  • mc cp myminio/test/test.txt ./downloaded_test.txt: Download the test.txt file from the bucket to the local machine with a new name.


Then you can view the UI on the browser as follows:


Happy coding!

See more articles here.

Comments

Popular posts from this blog

All Practice Series

Kubernetes Deployment for Zero Downtime

Deploying a NodeJS Server on Google Kubernetes Engine

Setting up Kubernetes Dashboard with Kind

Using Kafka with Docker and NodeJS

Practicing with Google Cloud Platform - Google Kubernetes Engine to deploy nginx

Monitoring with cAdvisor, Prometheus and Grafana on Docker

Kubernetes Practice Series

NodeJS Practice Series

Sitemap