Install MinIO di Docker

MinIO adalah solusi object storage yang kompatibel dengan API Amazon S3 dan mendukung seluruh fitur inti S3. Dirancang untuk fleksibilitas dan kinerja tinggi, MinIO dapat dijalankan di berbagai lingkungan — mulai dari public cloud, private cloud, bare-metal infrastructure, hingga edge computing.

Instalasi MinIO

Menggunakan Docker

Untuk menginstal MinIO menggunakan Docker, jalankan perintah berikut:

docker run -dit \
   -p 9000:9000 \
   -p 9090:9090 \
   --name minio \
   -v storage:/data \
   -e "MINIO_ROOT_USER=admin" \
   -e "MINIO_ROOT_PASSWORD=admin123" \
   quay.io/minio/minio server /data --console-address ":9090"

Menggunakan Docker Compose

Atau, Anda juga bisa menggunakan docker-compose dengan konfigurasi berikut:

services:
  minio:
    image: minio/minio
    ports:
      - "9000:9000"   # Port untuk API
      - "9090:9090"   # Port untuk Web Console
    volumes:
      - minio_storage:/data
    environment:
      MINIO_ROOT_USER: admin
      MINIO_ROOT_PASSWORD: admin123
      MINIO_SERVER_URL: https://storage.example.com
      MINIO_BROWSER_REDIRECT_URL: https://console-storage.example.com
      MINIO_DOMAIN: storage.example.com
    command: server --console-address ":9090" /data
    restart: unless-stopped

volumes:
  minio_storage:

Jalankan stack minio.

docker compose up -d

Akses MinIO Console

Setelah kontainer berjalan, Anda dapat mengakses MinIO Console melalui:

http://<IP-address>:9090

Contoh tampilan:

Instalasi MinIO Client (mc)

MinIO Client (mc) memungkinkan Anda untuk mengelola bucket dan object storage melalui command line.

Unduh dan Instal MinIO Client

wget https://dl.min.io/client/mc/release/linux-amd64/mc
chmod +x mc
sudo mv mc /usr/local/bin/mc

Konfigurasi mc agar Terhubung ke MinIO Server

Gunakan perintah berikut untuk menambahkan alias koneksi ke MinIO server lokal:

mc alias set local http://127.0.0.1:9000 {MINIO_ROOT_USER} {MINIO_ROOT_PASSWORD}
Gantilah {MINIO_ROOT_USER} dan {MINIO_ROOT_PASSWORD} sesuai dengan environment variable yang Anda tetapkan saat menjalankan container MinIO.

Tes Koneksi ke Server

Untuk memastikan mc berhasil terhubung, jalankan perintah berikut:

mc admin info local

Contoh output:

●  127.0.0.1:9000
   Uptime: 25 minutes
   Version: 2023-06-29T05:12:28Z
   Network: 1/1 OK
   Drives: 1/1 OK
   Pool: 1

Pools:
   1st, Erasure sets: 1, Drives per erasure set: 1

1 drive online, 0 drives offline

Basic Usage MinIO Client

Membuat Bucket

Untuk membuat satu bucket:

mc mb local/wordpress

Membuat Beberapa Bucket Sekaligus

mc mb local/user-1 local/user-2 local/user-3

Menampilkan Daftar Bucket

mc ls local

Contoh output:

[2023-06-30 14:36:42 WIB]     0B user-1/
[2023-06-30 14:36:42 WIB]     0B user-2/
[2023-06-30 14:36:42 WIB]     0B user-3/
[2023-06-30 14:32:41 WIB]     0B wordpress/

Mengunggah File atau Folder ke Bucket

Untuk mengunggah seluruh isi direktori root (gunakan hati-hati!):

mc cp -r /* local/wordpress
Pastikan path sumber yang Anda tentukan benar. Jika tidak, perintah di atas dapat mengunggah seluruh file sistem Anda ke bucket.

Memindahkan Objek dari Satu Bucket ke Bucket Lain

untuk memindahkan semua objek dari bucket wordpress ke user-1.

mc mv -r local/wordpress/ local/user-1

Menyinkronkan Objek ke Bucket

Menyinkronkan seluruh isi direktori lokal ke bucket wordpress. Perubahan pada lokal akan dicerminkan di bucket.

mc mirror ./ local/wordpress

Mencari Objek Berdasarkan Nama

Mencari file index.php di seluruh bucket yang terdaftar pada alias local.

mc find local --name "index.php"

Mengirim Data dari STDIN ke Objek di Bucket

Mengirim isi file ISO ke objek gnuos.iso di bucket user-2. Berguna untuk upload streaming atau integrasi pipeline.

cat debian-8.2.iso | mc pipe local/user-2/gnuos.iso

Menampilkan Isi Objek

Menampilkan isi file index.php langsung di terminal.

mc cat local/wordpress/index.php

Melihat Metadata Objek

Menampilkan metadata dari objek atau bucket wordpress.

mc stat local/wordpress

Mengecek Penggunaan Disk pada Bucket

Menunjukkan total penggunaan ruang pada bucket wordpress.

mc du local/wordpress

Membuat URL untuk Mengunduh Objek

Menghasilkan URL temporer untuk mengunduh objek atau isi bucket.

mc share download local/wordpress

Menetapkan Kuota pada Bucket

Membatasi penggunaan ruang pada bucket user-3 sebesar 52 MB.

mc quota set local/user-3 --size 52M

Mengatur Akses Bucket (Publik/Privat)

Menjadikan bucket wordpress dapat diakses secara publik. Gunakan private untuk membatasi akses.

mc anonymous set public local/wordpress

Mengatur Replikasi Bucket

Menyinkronkan bucket wp1 ke remote bucket backup.

mc replicate add local/wp1 --remote-bucket http://admin:[email protected]:9000/backup
Agar bucket dapat direplikasi, saat membuatnya harus menyertakan opsi --with-versioning.