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

Monitoring with cAdvisor, Prometheus and Grafana on Docker

React Practice Series

Sitemap

Using Kafka with Docker and NodeJS

DevOps Practice Series

Kubernetes Practice Series