MinIO Docker: S3 Uyumluluklu Nesne Depolama için Kurulum Kılavuzu
Yerel geliştirme için S3 uyumlu nesne depolama elde etmek üzere MinIO’yu Docker ile çalıştırın; kurulum, kalıcı birimler, sorun giderme ve dağıtık modun ne zaman kullanılacağını kapsar.
Geliştirme için nesne depolamaya mı ihtiyacınız var ama AWS S3 kurmak ve ücret ödemek istemiyor musunuz?
MinIO size S3 uyumlu ve her yerde çalışabilen bir depolama sunar — dizüstü bilgisayarınızda, bir VM’de veya bir Kubernetes kümesinde. Açık kaynaklıdır; yani satıcıdan bağımsızdır ve ay sonunda sürpriz faturalarla karşılaşmazsınız. Docker ile birlikte kullanıldığında, MinIO’yu çalıştırmak daha da kolaylaşır; çünkü makinenuza doğrudan bir şey kurmadan saniyeler içinde bir depolama sunucusu ayağa kaldırabilirsiniz.
Docker konteynerleri MinIO’yu sisteminizden yalıtır ve aynı zamanda yapılandırma ve veri kalıcılığı üzerinde tam kontrol sağlar. S3 API’lerini yerel olarak test edebilir, üretim depolama kurulumlarını taklit edebilir veya küçük projeler için hafif nesne depolama çalıştırabilirsiniz.
Bu yazıda, MinIO’yu Docker ile nasıl çalıştıracağınızı, doğru çalıştığını nasıl doğrulayacağınızı ve en yaygın kurulum seçeneklerini nasıl yapılandıracağınızı göstereceğim.
Docker’a tamamen yeniyseniz, bir Cumartesi öğleden sonranızı temellere ayırın — DataCamp’in Introduction to Docker kursu sizin için yeterlidir.
Önkoşullar
MinIO’yu Docker ile çalıştırmak için üç şeye ihtiyacınız var.
Makinenizde Docker’ın kurulu ve çalışıyor olması. Bunu terminalinizde docker --version komutunu çalıştırarak doğrulayabilirsiniz. Bir sürüm numarası görürseniz, hazırsınız demektir.
Temel düzeyde Docker komutlarına aşinalık. Konteynerleri başlatıp durdurmayı, logları görüntülemeyi ve Docker imajlarıyla çalışmayı bilmelisiniz. Daha önce docker run çalıştırdıysanız veya Docker Compose ile çalıştıysanız sorun olmaz.
Kalıcı depolama için yerel bir dizin. MinIO’nun, verilerinizi konteynerin dışında saklayacağı bir yere ihtiyacı var. Ana makinenizde boş bir dizin oluşturun — ~/minio/data gibi bir konum iyi çalışır.
Hepsi bu. Liste kısa ve basit, ancak devam etmeden önce tüm maddeleri işaretlediğinizden emin olun.
Docker ile MinIO Nasıl Çalıştırılır (Tek Düğüm Kurulumu)
Tek düğümlü bir MinIO kurulumu, Docker konteynerinde tek bir MinIO örneği çalıştırır ve tüm verilerinizi tek bir yerde depolar.
Bu kurulum, yüksek erişilebilirlik veya dağıtık depolama gerektirmeyen geliştirme, test ve küçük ölçekli üretim iş yükleri için uygundur. Birden çok düğüm çalıştırmanın karmaşıklığı olmadan tam S3 API uyumluluğu elde edersiniz.
Docker Run ile MinIO’yu Çalıştırma
docker run komutu, MinIO’yu yeni bir konteynerde başlatır ve her şeyi tek satırda yapılandırır.
Temel komut şöyledir:
docker run -p9000:9000 -p9001:9001 \--name minio \-v ~/minio/data:/data \-e"MINIO_ROOT_USER=admin"\-e"MINIO_ROOT_PASSWORD=password123"\
quay.io/minio/minio server /data --console-address ":9001"Altyapı:
docker run ile MinIO’yu çalıştırma
Her bir bölümün ne yaptığını açıklayalım.
9000 numaralı port, uygulamalarınızın dosya yüklemek ve indirmek için bağlandığı API uç noktasıdır. S3 uyumlu istemciler isteklerini buraya gönderir.
9001 numaralı port, kovaları yönetebileceğiniz, izinleri ayarlayabileceğiniz ve depolamayı izleyebileceğiniz web konsolunu barındırır. MinIO’nun doğru çalıştığını doğrulamak için bunu kullanacaksınız.
-v ~/minio/data:/data bayrağı, yerel dizininizi konteynerin depolama konumuna eşler. MinIO’nun depoladığı her şey ana makinenizdeki ~/minio/data içine gider. Konteyneri durdurduğunuzda veya kaldırdığınızda, verileriniz bu dizinde güvende kalır.
Ortam değişkenleri erişim kimlik bilgilerinizi ayarlar. MINIO_ROOT_USER yönetici kullanıcı adınızdır ve MINIO_ROOT_PASSWORD parolanızdır. Bunlar, web konsoluna giriş yapmak ve API erişimini yapılandırmak için kullanacağınız kimlik bilgilerdir.
server /data argümanı MinIO’ya sunucu modunda çalışmasını ve depolama dizini olarak /data konumunu kullanmasını söyler. --console-address ":9001" bayrağı ise web konsolunun dinleyeceği portu belirtir.
Uzun ve çok satırlı terminal komutlarının hayranı değilseniz MinIO’yu çalıştırmanın alternatif bir yolu daha var.
Not: MinIO, Docker Hub ve Quay imajlarını artık güncellemiyor (Ekim 2025 itibarıyla). Bu yazıdaki kod yerel geliştirme için hâlâ çalışır; ancak üretim kullanımı için Chainguard’ın MinIO imajı (cgr.dev/chainguard/minio:latest) gibi bakımı yapılan alternatifleri değerlendirin.
Docker Compose ile MinIO’yu Çalıştırma
Docker Compose, uzun komutlar yazmak yerine MinIO kurulumunuzu bir YAML dosyasında tanımlamanızı sağlar.
Bu sayede yapılandırmanız tekrarlanabilir ve sürüm kontrollü olur. Dosyayı ekibinizle paylaşabilir, git’e aktarabilir ve MinIO’yu her seferinde aynı ayarlarla yeniden başlatabilirsiniz.
docker run komutunun yapısını yansıtır, ancak her şeyi adlandırılmış bölümlerde düzenler. Portlar, ortam değişkenleri ve birimler kendi bloklarına sahiptir.
Birim eşlemesi aynı şekilde çalışır — ./minio/data:/data, bulunduğunuz klasörde bir dizin oluşturur ve bunu konteynere bağlar. ./ ifadesi, bu docker-compose.yml dosyasının bulunduğu dizine göredir.
-d bayrağı konteyneri arka planda çalıştırır. Terminaliniz MinIO logları tarafından meşgul edilmez ve terminali kapattıktan sonra da konteyner çalışmaya devam eder.
Compose, geliştirme için daha iyidir; çünkü aynı dosyada sağlık kontrolleri, yeniden başlatma ilkeleri ve birden fazla servisi ekleyebilirsiniz. Daha sonra MinIO’nun yanına bir veritabanı veya başka servisler eklemeniz gerekirse, services: altına yeni girdiler eklemeniz yeterlidir.
MinIO’ya Erişim ve Çalıştığını Doğrulama
Artık MinIO çalıştığına göre, depolama için kullanmadan önce doğru şekilde başladığını doğrulamak isteyeceksiniz.
Kurulumunuzu doğrulamanın iki yolu var: görsel doğrulama için web konsolu ve komut satırı doğrulaması için MinIO istemcisi.
MinIO web konsolunu kullanma
Tarayıcınızı açın ve http://localhost:9001 adresine gidin.
Kimlik bilgilerini isteyen bir giriş ekranı göreceksiniz:
MinIO web arayüzü
Ortam değişkenleri olarak sağladığınız kimlik bilgileriyle giriş yapabilirsiniz — benim örneğimde admin/password123.
Giriş yaptıktan sonra MinIO panosuna yönlendirilirsiniz. Ana sayfa depolama kullanımını, kova sayısını ve sistem sağlığını gösterir. Sol kenar çubuğunda kova oluşturma, kullanıcı yönetimi ve metrikleri görüntüleme seçenekleri bulunur.
MinIO web arayüzü üzerinden kova oluşturma
Her şeyin çalıştığını doğrulamak için bir test kovası oluşturun. Kenar çubuğunda "Buckets"a tıklayın, ardından "Create Bucket"a. test-bucket gibi bir ad verin ve oluştur’a tıklayın. Kova listenizde görünüyorsa, MinIO doğru çalışıyor ve veri depoluyor demektir.
MinIO web arayüzü üzerinden kova oluşturma
MinIO istemcisini (mc) kullanma
MinIO istemcisi, AWS CLI’da olduğu gibi MinIO ile etkileşim kurmanızı sağlayan bir komut satırı aracıdır.
Çıktıda test.txt görüyorsanız, her şeyi doğru şekilde kurmuşsunuz demektir.
Bir kovadaki dosyaları listeleme
Bir şeyler çalışmıyorsa işte hızlı sorun giderme ipuçları:
Konteynerin çalışıp çalışmadığını docker ps ile kontrol edin. minio adlı bir konteyner görmüyorsanız, başlamamış ya da çökmüş demektir.
Logları docker logs minio ile görüntüleyin. Hâlihazırda kullanımda olan portlar veya veri dizinindeki izin problemleriyle ilgili hatalara bakın.
Web konsoluna erişemiyorsanız, portların engellenmediğini docker port minio ile doğrulayın. 9000 ve 9001’in her ikisinin de doğru eşlendiğini görmelisiniz.
Veri dizininde izin hatalarıyla karşılaşıyorsanız, erişim sorunlarını düzeltmek için chmod -R 755 ~/minio/data komutunu çalıştırın.
Kalıcı Depolama ve Veri Birimleri
Varsayılan olarak konteynerler geçicidir — bir konteyneri kaldırdığınızda içindeki her şey kaybolur.
MinIO nesneleri, metaverileri ve yapılandırma dosyalarını depolar. Kalıcı depolamayı doğru ayarlamazsanız, konteyneri yeniden başlattığınız veya kaldırdığınız anda tüm verilerinizi kaybedersiniz.
Docker ile yerel birimler kullanma
Docker volume’leri ve bind mount’lar verilerinizi konteynerin dışında güvende tutar.
-v ~/minio/data:/data kullanırken veya Docker Compose’ta birim eşlemesi yaptığınızda MinIO her şeyi ana makinenize yazar. Konteyner /data konumuna okur/yazar; ancak bu dosyalar aslında ana makinenizdeki ~/minio/data içinde bulunur.
Konteyneri durdurduğunuzda, kaldırdığınızda veya hatta imajı sildiğinizde — verileriniz ~/minio/data içinde kalır. Aynı dizine işaret eden yeni bir MinIO konteyneri başlatın; tüm kovalarınız, nesneleriniz ve ayarlarınız bıraktığınız gibi geri gelir.
Bir birimi eşlemezseniz MinIO, konteynerin dahili dosya sistemini kullanır. Her şey, konteyneri durdurana kadar düzgün çalışır. Yeniden başlattığınızda, MinIO kovasız, nesnesiz ve yapılandırmasız sıfırdan başlar.
Daha önce gösterdiğim compose örneği, compose dosyanızın bulunduğu yerde bir minio/data klasörü oluşturur:
MinIO veri klasörü
Yaygın depolama hataları
Birimsiz çalıştırmak en yaygın hatadır.
MinIO’yu başlatır, dosyalar yüklersiniz, kovalar oluşturursunuz ve her şey yolunda görünür. Sonra bir güncelleme veya yapılandırma değişikliği için konteyneri yeniden başlatırsınız. Tüm verileriniz kaybolur; çünkü ana makinede değil, konteynerin içinde saklanmıştır.
Gerçek veri koymadan önce Docker komutunuzun veya Compose dosyanızın birim eşlemesi içerip içermediğini her zaman kontrol edin.
İzin sorunları Docker, bağladığınız dizine yazamadığında meydana gelir.
Konteyner içindeki MinIO işlemi belirli bir kullanıcı olarak çalışır. Bu kullanıcının ana makine dizininde yazma izni yoksa MinIO başlarken çöker veya nesneleri saklamaya çalışırken sessizce başarısız olur.
Veri dizininizin yazılabilir olduğundan emin olarak bunu düzeltebilirsiniz:
Bu, yapılandırma dosyalarını düzenlemeden veya konteynerleri yeniden oluşturmadan MinIO’nun davranışını değiştirebileceğiniz anlamına gelir. Bu değişkenleri docker run komutunda veya Docker Compose dosyanızda ayarlarsınız.
Erişim anahtarları ve kimlik bilgileri
MinIO, kimlik doğrulama için iki ortam değişkeni gerektirir: MINIO_ROOT_USER ve MINIO_ROOT_PASSWORD.
Bunlar, MinIO örneğiniz üzerinde tam denetime sahip olan kök yönetici hesabını oluşturur. Kök kullanıcı kovalar oluşturabilir, diğer kullanıcıları yönetebilir, ilkeler belirleyebilir ve depolanan tüm nesnelere erişebilir.
Bunları docker run sırasında şu şekilde ayarlayın:
Üretimde varsayılan kimlik bilgilerini kullanmayın. Bu yazıdaki örneklerde basitlik için admin ve password123 kullanıldı, ancak gerçek dağıtımlar için bunlar çok kötü seçimlerdir.
En az 8 karakterli güçlü bir parola seçin. Daha da iyisi, rastgele oluşturulmuş kimlik bilgileri kullanın ve bir parola yöneticisinde veya gizli yönetim sisteminde saklayın.
Sürüm kontrolüne eklediğiniz Docker Compose dosyalarına kimlik bilgilerini gömmeyin. Bunun yerine ortam dosyalarını kullanın:
Ardından gerçek kimlik bilgilerinizle bir .env dosyası oluşturun ve .gitignore’a ekleyin.
Port yapılandırması ve ağ
MinIO’nun düzgün çalışması için iki porta ihtiyacı vardır.
9000 numaralı port S3 API’sini yönetir. Uygulamalarınız nesneleri depolamak ve almak için istekleri buraya gönderir. Tüm S3 uyumlu istemciler bu porta bağlanır.
9001 numaralı port web konsolunu sunar. MinIO’yu GUI üzerinden yönettiğiniz tarayıcı arayüzüdür.
Artık MinIO’nun API’si http://localhost:9090 adresinde, konsol ise http://localhost:9091 adresinde. Konteyner içinde hâlâ 9000 ve 9001 kullanılır; ancak dışarıdan farklı portlar üzerinden erişirsiniz.
MinIO’yu başlatmadan önce bir portu hangi sürecin kullandığını kontrol etmek için şu komutlar yardımcı olur:
Aynı makinede birden fazla MinIO örneği çalıştırıyorsanız, her birine benzersiz port eşlemeleri vererek çakışmaları önleyin.
Docker ile MinIO’yu Dağıtık Modda Çalıştırma
Dağıtık mod, yüksek erişilebilirlik ve veri yedekliliği için MinIO’yu birden çok sunucu ve sürücüye yayarak çalıştırır.
Geliştirme veya test için buna ihtiyacınız yok. Tek düğümlü mod çoğu kullanım durumu için fazlasıyla yeterlidir. Sunucu arızalansa bile çevrimiçi kalması gereken bir üretim dağıtımı planlamıyorsanız bu bölümü atlayın.
Dağıtık MinIO ne zaman mantıklıdır
Hata toleransı gerektiğinde dağıtık modu kullanın.
Dağıtık bir kurulda bir sunucu devre dışı kalsa bile MinIO çalışmaya devam eder ve verileriniz erişilebilir kalır. Sistem, nesneleri birden çok sürücüye ve sunucuya dağıtmak için erasure coding kullanır; böylece sürücüleri veya tüm düğümleri kaybetseniz de verileri kaybetmezsiniz.
Büyük ölçekli depolama için de dağıtık moda ihtiyaç duyarsınız. Terabaytlarca veya petabaytlarca veri depoluyorsanız, verileri birden çok makineye yaymak tek bir sunucunun sağlayabileceğinden daha iyi performans ve daha fazla kapasite sunar.
Yerel geliştirme bunların hiçbirini gerektirmez. Dağıtık mod, karmaşıklık ekler — birden çok makine veya VM, koordineli ağ ve dikkatli sürücü yapılandırması gerekir. S3 API’lerini test etmek veya dizüstü bilgisayarınızda nesne depolama çalıştırmak için tek düğümlü mod ihtiyacınızı karşılar.
Üretim ortamlarında, kesinti kabul edilemez olduğunda ve veri kaybı felaket boyutunda sonuçlar doğuracağında dağıtık mod kullanılır. Yedekleme sistemleri, veri gölleri veya kullanıcıların sürekli depolama erişimine bağlı olduğu uygulamaları düşünün.
Yüksek düzeyde kurulum özeti
Dağıtık MinIO, birden çok düğüme yayılmış en az dört sürücü gerektirir.
Her düğüm bir MinIO konteyneri çalıştırır ve tüm düğümler aynı sürücü yapılandırmasını görmelidir. Tek sürücülü düğümleri çok sürücülü düğümlerle karıştıramaz veya kurulumdan sonra sürücü sayısını değiştiremezsiniz.
Temel bir dağıtık kurulum şöyle görünür:
Dört sunucu (veya VM) üzerine kurulu MinIO
Her sunucuda MinIO’ya adanmış birden çok sürücü
Tüm düğümler arasında ağ bağlantısı
Her düğümde aynı sürücü yolları
Koordinasyonu tek bir Compose dosyasında yönetebilirsiniz; ama uyarayım — uzun bir dosya olacaktır. Tüm düğümleri tanımlamanız, sürücü yollarını ayarlamanız ve hepsini birlikte başlatmanız gerekir.
İki sürücülü dört düğüm için eksiksiz bir örnek işte şöyle:
{1...4} sözdizimi, MinIO’ya iki sürücülü (data1 ve data2) dört düğüme (minio1’den minio4’e) bağlanmasını söyler. Her düğüm, ayrı ayrı erişebilmeniz için benzersiz port eşlemesi alır — 1. düğüm 9001/9091’i, 2. düğüm 9002/9092’yi vb. kullanır.
minio-distributed ağı, konteynerlerin birbirine ana makine adıyla ulaşabilmesini sağlar. Tüm düğümler aynı kimlik bilgilerini kullanmalı ve aynı sürücü düzenini görmelidir.
Kümeyi başlatmak için önce veri dizinlerini oluşturun, ardından compose dosyasını çalıştırın
mkdir-p data/minio{1..4}/data{1..2}docker compose up -dAltyapı:
Dağıtık modda MinIO’yu çalıştırma
Hepsi bu! Web arayüzüne erişmek için aşağıdaki URL’lerden herhangi birini ziyaret edebilirsiniz:
Ancak tekrar edelim, gerçekten ihtiyacınız yoksa bunu kurmayın — dağıtık mod, çalışma süresi ve yedekliliğin ek karmaşıklığı haklı çıkardığı üretim iş yükleri içindir.
Ayrıca, tam bir üretim ortamı için TLS, tek konsol uç noktası, harici birimler/diske gibi şeyleri de isteyebilirsiniz.
Docker’da MinIO Çalıştırırken Yaygın Sorunlar
MinIO Docker sorunlarının çoğu yanlış yapılandırılmış birimler, portlar veya kimlik bilgilerinden kaynaklanır.
Gerçekte karşılaşacağınız sorunlar ve bunları hızlıca nasıl çözeceğiniz şöyle.
Konteyner başlıyor ancak web arayüzüne erişilemiyor
docker ps çalıştırırsınız ve konteynerin çalıştığını görürsünüz; ancak http://localhost:9001 hiçbir şey döndürmez veya zaman aşımına uğrar.
Bunu çözmek için önce konsol portunun doğru eşlendiğini kontrol edin:
"Console: http://..." diyen satırı arayın — bu, MinIO’nun aslında hangi adreste dinlediğini söyler. Beklediğinizden farklı bir port görürseniz, --console-address bayrağınız hatalı olabilir.
Bağlanan birimlerde izin hataları
MinIO başlarken çöküyor veya /data konumuna yazmaya çalıştığında loglarda "permission denied" hataları görüyorsunuz.
MinIO işlemi konteyner içinde belirli bir kullanıcı olarak çalışır ve bu kullanıcının bağladığınız dizinde yazma iznine ihtiyacı vardır. Şununla düzeltin:
Çıktıda MINIO_ROOT_USER ve MINIO_ROOT_PASSWORD arayın. Eksiklerse, -e bayraklarını ya da Compose dosyanızdaki environment: bölümünü atlamışsınızdır.
MinIO ayrıca parolaların en az 8 karakter olmasını gerektirir. Parolanız daha kısaysa konteyner bunu reddedebilir veya varsayılanı kullanabilir.
Mevcut bir kurulda kimlik bilgilerini değiştirdiyseniz, konteyneri tamamen durdurup kaldırın ve sonra sıfırdan başlatın:
docker stop minio
dockerrm minio
docker run ... # yeni kimlik bilgileriyleAltyapı:
Eski kimlik bilgisi dosyaları veri dizininizde kalmış olabilir ve çakışmalara neden olabilir.
Docker ile MinIO Çalıştırmada En İyi Uygulamalar
Yaygın hatalardan kaçınmak ve MinIO kurulumunuzu sürdürülebilir kılmak için şu uygulamaları izleyin.
Tekrarlanabilirlik için Docker Compose kullanın. Bir Compose dosyası tam yapılandırmanızı — portları, birimleri, ortam değişkenlerini ve komutları — belgelendirir. Sürüm kontrolüne alabilir, ekibinizle paylaşabilir ve farklı makinelerde birebir aynı kurulumları yeniden oluşturabilirsiniz. Kabuk geçmişinizden uzun docker run komutları çalıştırmak yapılandırma kaymasına ve hatalara yol açar.
Her zaman kalıcı depolamayı yapılandırın. Gerçek veri depolamadan önce bir birim veya bind mount eşleyin. Konteynerler geçicidir — bu adımı atlarsanız, konteyner yeniden başladığında her şeyi kaybedersiniz. docker inspect minio ile kurulumunuzu kontrol edin ve birim eşlemesinin doğru olduğunu doğrulayın.
Kimlik bilgilerini komut geçmişinden uzak tutun. Parolaları doğrudan docker run komutlarına koymayın veya Compose dosyalarınızda git’e işlemeyin. Docker Compose ile ortam dosyaları (.env) kullanın veya çalışma zamanında ortam değişkenleriyle iletin. .env dosyasını hemen .gitignore’a ekleyin.
Tek düğümlü modu yalnızca geliştirme için kullanın. Dağıtık mod karmaşıktır ve kurulum süresi uzundur. Dizüstü bilgisayarınızda yüksek erişilebilirlik veya erasure coding’e ihtiyacınız yok. Kesintinin gerçekten önemli olduğu üretim için dağıtık dağıtımları saklayın.
Başlangıç sırasında logları izleyin. MinIO’yu ilk kez başlatırken docker logs -f minio çalıştırın. Loglar, API uç noktasını, konsol URL’sini ve yapılandırma hatalarını gösterir. Bir sorun varsa, hiçbir şeyin neden çalışmadığını merak etmek yerine anında görürsünüz.
Bu uygulamaları takip ederseniz MinIO kurulumunuz ilk günden sağlam olacaktır.
Sonuç
Docker ile MinIO’yu çalıştırmak, bir dakikadan kısa sürede makinenizde S3 uyumlu nesne depolamaya sahip olabileceğiniz anlamına gelir.
Geliştirme, test ve küçük ölçekli projeler için Docker’da tek düğümlü MinIO ihtiyacınız olan her şeyi sunar. Tam S3 API uyumluluğu, yönetim için web konsolu ve bulut servislerine bağımlı olmadan veya kullanmadığınız depolama için ödeme yapmadan verileriniz üzerinde tam kontrol elde edersiniz.
Temellerle başlayın: kalıcı birimler ve güvenli kimlik bilgileri içeren basit bir docker run komutu veya bir Docker Compose dosyası (ikincisini tercih edin). Kurulumunuzu test edin, çalıştığını doğrulayın ve yalnızca gerçekten ihtiyaç duyduğunuzda karmaşıklık ekleyin.
Dağıtık mod, yüksek erişilebilirlik ve üretim düzeyinde yapılandırmalar bir nedenle vardır — ancak bu neden yerel geliştirme değildir. Üretime dağıtırken, kesinti size para kaybettirdiğinde veya kaybedilemeyecek verileri depoladığınızda bu kurulumlara geçin. O zamana kadar işleri basit tutun ve altyapıyı yönetmek yerine uygulamanızı geliştirmeye odaklanın.
Hırvatistan merkezli Kıdemli Veri Bilimci. 700’ün üzerinde yayımlanmış makaleyle 10 M+ görüntüleme elde eden, önde gelen bir teknoloji yazarı. TPOT ile Makine Öğrenimi Otomasyonu kitabının yazarı.
SSS
Yüksek eşzamanlı yüklemeler için MinIO performansını nasıl optimize edebilirim?⌄
MinIO sunucunuzun eşzamanlı bağlantı kapasitesini MINIO_API_REQUESTS_MAX ortam değişkenini ayarlayarak artırın. Yüksek eşzamanlılık iş yükleri için, MinIO yükü kullanılabilir sürücülere otomatik olarak dağıttığından kurulumunuzda birden çok sürücü kullanmayı da düşünün. Dağıtık mod çalıştırıyorsanız, düğümler arasındaki ağ bant genişliğinin trafiği kaldırabildiğinden emin olun ve MinIO iletişimi için özel ağ arayüzleri kullanın.
Docker Compose ile MinIO kurarken en iyi uygulamalar nelerdir?⌄
Üretime yakın kurulumlar için docker run komutları yerine her zaman Docker Compose kullanın; böylece yapılandırmanız tekrarlanabilir ve sürüm kontrollü olur. Kimlik bilgilerini ayrı bir .env dosyasında saklayın ve depoya girmemesi için .gitignore’a ekleyin. Kalıcı birimleri ana makinenizde ayrılmış dizinlere eşleyin, yeniden başlatma ilkelerini unless-stopped veya always olarak ayarlayın ve konteyner durumunu izlemek için healthcheck yapılandırmalarını ekleyin.
MinIO’yu TLS kullanarak güvenli erişim için nasıl yapılandırırım?⌄
TLS sertifikaları oluşturun ve ana makinenizde bir dizine koyun, ardından bu dizini MinIO konteyneri içinde /root/.minio/certs konumuna bağlayın. MinIO, bu konumdaki sertifikaları otomatik olarak algılar ve başlangıçta HTTPS’i etkinleştirir. public.crt (sertifika) ve private.key (özel anahtar) dosyalarına ihtiyacınız olacak ve sertifikanın MinIO sunucunuzun ana makine adı veya IP adresiyle eşleşmesi gerekir.
MinIO ile diğer S3 uyumlu alternatifler arasındaki temel farklar nelerdir?⌄
MinIO tamamen açık kaynaklıdır ve özellikle yüksek performanslı nesne depolama için tasarlanmıştır; birçok S3 uyumlu alternatif ise ya bulut servisidir ya da sınırlı özellik setine sahiptir. MinIO, AWS S3’ün yetenekleriyle eşleşen dağıtık erasure coding, versiyonlama, şifreleme ve yaşam döngüsü politikaları gibi özellikleri destekler. Bazı alternatiflerin aksine MinIO her yerde çalışır — bare metal, VM, konteyner veya Kubernetes üzerinde — ve sizi belirli bir bulut sağlayıcısına kilitlemez.
MinIO yedeklemelerini ve geri yükleme süreçlerini nasıl otomatikleştirebilirim?⌄
MinIO istemcisini (mc) kullanarak, mc mirror source/ destination/ ile kovaları başka bir MinIO örneğine veya S3 uyumlu depolamaya yansıtan betikler oluşturun. Bu betikleri cron işleriyle zamanlayın veya MinIO’nun yerleşik kova çoğaltma özelliğini kullanarak verileri MinIO örnekleri arasında otomatik olarak senkronize edin. Geri yükleme için mc mirror’ı ters yönde kullanarak verileri yedek konumdan geri kopyalayın veya belirli kova ya da nesneleri geri almak için --recursive bayrağıyla mc cp kullanın.
Algoritmalar, sistem tasarımı ve davranışsal senaryoları kapsayan bu temel sorularla teknik mülakat sürecine hakim olun. Uzman cevapları, kod örnekleri ve kanıtlanmış hazırlık stratejileri edinin.
Git deponuzu temiz tutmak için .gitignore’u nasıl kullanacağınızı öğrenin. Bu eğitim; temelleri, yaygın kullanım durumlarını ve başlamanıza yardımcı olacak pratik örnekleri kapsar!
Docker'a giriş yapın ve veri uzmanlarının araç setinde Docker'ın önemini keşfedin. Docker konteynerleri, görüntüler ve daha fazlası hakkında bilgi edinin.
Geliştirme için nesne depolamaya mı ihtiyacınız var ama AWS S3 kurmak ve ücret ödemek istemiyor musunuz?
MinIO size S3 uyumlu ve her yerde çalışabilen bir depolama sunar — dizüstü bilgisayarınızda, bir VM’de veya bir Kubernetes kümesinde. Açık kaynaklıdır; yani satıcıdan bağımsızdır ve ay sonunda sürpriz faturalarla karşılaşmazsınız. Docker ile birlikte kullanıldığında, MinIO’yu çalıştırmak daha da kolaylaşır; çünkü makinenuza doğrudan bir şey kurmadan saniyeler içinde bir depolama sunucusu ayağa kaldırabilirsiniz.
Docker konteynerleri MinIO’yu sisteminizden yalıtır ve aynı zamanda yapılandırma ve veri kalıcılığı üzerinde tam kontrol sağlar. S3 API’lerini yerel olarak test edebilir, üretim depolama kurulumlarını taklit edebilir veya küçük projeler için hafif nesne depolama çalıştırabilirsiniz.
Bu yazıda, MinIO’yu Docker ile nasıl çalıştıracağınızı, doğru çalıştığını nasıl doğrulayacağınızı ve en yaygın kurulum seçeneklerini nasıl yapılandıracağınızı göstereceğim.
Docker’a tamamen yeniyseniz, bir Cumartesi öğleden sonranızı temellere ayırın — DataCamp’in Introduction to Docker kursu sizin için yeterlidir.
Önkoşullar
MinIO’yu Docker ile çalıştırmak için üç şeye ihtiyacınız var.
Makinenizde Docker’ın kurulu ve çalışıyor olması. Bunu terminalinizde
docker --versionkomutunu çalıştırarak doğrulayabilirsiniz. Bir sürüm numarası görürseniz, hazırsınız demektir.Temel düzeyde Docker komutlarına aşinalık. Konteynerleri başlatıp durdurmayı, logları görüntülemeyi ve Docker imajlarıyla çalışmayı bilmelisiniz. Daha önce
docker runçalıştırdıysanız veya Docker Compose ile çalıştıysanız sorun olmaz.Kalıcı depolama için yerel bir dizin. MinIO’nun, verilerinizi konteynerin dışında saklayacağı bir yere ihtiyacı var. Ana makinenizde boş bir dizin oluşturun —
~/minio/datagibi bir konum iyi çalışır.Hepsi bu. Liste kısa ve basit, ancak devam etmeden önce tüm maddeleri işaretlediğinizden emin olun.
Docker ile MinIO Nasıl Çalıştırılır (Tek Düğüm Kurulumu)
Tek düğümlü bir MinIO kurulumu, Docker konteynerinde tek bir MinIO örneği çalıştırır ve tüm verilerinizi tek bir yerde depolar.
Bu kurulum, yüksek erişilebilirlik veya dağıtık depolama gerektirmeyen geliştirme, test ve küçük ölçekli üretim iş yükleri için uygundur. Birden çok düğüm çalıştırmanın karmaşıklığı olmadan tam S3 API uyumluluğu elde edersiniz.
Docker Run ile MinIO’yu Çalıştırma
docker runkomutu, MinIO’yu yeni bir konteynerde başlatır ve her şeyi tek satırda yapılandırır.Temel komut şöyledir:
docker run ile MinIO’yu çalıştırma
Her bir bölümün ne yaptığını açıklayalım.
9000 numaralı port, uygulamalarınızın dosya yüklemek ve indirmek için bağlandığı API uç noktasıdır. S3 uyumlu istemciler isteklerini buraya gönderir.
9001 numaralı port, kovaları yönetebileceğiniz, izinleri ayarlayabileceğiniz ve depolamayı izleyebileceğiniz web konsolunu barındırır. MinIO’nun doğru çalıştığını doğrulamak için bunu kullanacaksınız.
-v ~/minio/data:/databayrağı, yerel dizininizi konteynerin depolama konumuna eşler. MinIO’nun depoladığı her şey ana makinenizdeki~/minio/dataiçine gider. Konteyneri durdurduğunuzda veya kaldırdığınızda, verileriniz bu dizinde güvende kalır.Ortam değişkenleri erişim kimlik bilgilerinizi ayarlar.
MINIO_ROOT_USERyönetici kullanıcı adınızdır veMINIO_ROOT_PASSWORDparolanızdır. Bunlar, web konsoluna giriş yapmak ve API erişimini yapılandırmak için kullanacağınız kimlik bilgilerdir.server /dataargümanı MinIO’ya sunucu modunda çalışmasını ve depolama dizini olarak/datakonumunu kullanmasını söyler.--console-address ":9001"bayrağı ise web konsolunun dinleyeceği portu belirtir.Uzun ve çok satırlı terminal komutlarının hayranı değilseniz MinIO’yu çalıştırmanın alternatif bir yolu daha var.
Not: MinIO, Docker Hub ve Quay imajlarını artık güncellemiyor (Ekim 2025 itibarıyla). Bu yazıdaki kod yerel geliştirme için hâlâ çalışır; ancak üretim kullanımı için Chainguard’ın MinIO imajı (cgr.dev/chainguard/minio:latest) gibi bakımı yapılan alternatifleri değerlendirin.
Docker Compose ile MinIO’yu Çalıştırma
Docker Compose, uzun komutlar yazmak yerine MinIO kurulumunuzu bir YAML dosyasında tanımlamanızı sağlar.
Bu sayede yapılandırmanız tekrarlanabilir ve sürüm kontrollü olur. Dosyayı ekibinizle paylaşabilir, git’e aktarabilir ve MinIO’yu her seferinde aynı ayarlarla yeniden başlatabilirsiniz.
Bir
docker-compose.ymldosyası oluşturun:docker runkomutunun yapısını yansıtır, ancak her şeyi adlandırılmış bölümlerde düzenler. Portlar, ortam değişkenleri ve birimler kendi bloklarına sahiptir.Birim eşlemesi aynı şekilde çalışır —
./minio/data:/data, bulunduğunuz klasörde bir dizin oluşturur ve bunu konteynere bağlar../ifadesi, budocker-compose.ymldosyasının bulunduğu dizine göredir.Artık MinIO’yu şu komutla başlatabilirsiniz:
docker compose ile MinIO’yu çalıştırma
-dbayrağı konteyneri arka planda çalıştırır. Terminaliniz MinIO logları tarafından meşgul edilmez ve terminali kapattıktan sonra da konteyner çalışmaya devam eder.Şununla durdurabilirsiniz:
Compose, geliştirme için daha iyidir; çünkü aynı dosyada sağlık kontrolleri, yeniden başlatma ilkeleri ve birden fazla servisi ekleyebilirsiniz. Daha sonra MinIO’nun yanına bir veritabanı veya başka servisler eklemeniz gerekirse,
services:altına yeni girdiler eklemeniz yeterlidir.MinIO’ya Erişim ve Çalıştığını Doğrulama
Artık MinIO çalıştığına göre, depolama için kullanmadan önce doğru şekilde başladığını doğrulamak isteyeceksiniz.
Kurulumunuzu doğrulamanın iki yolu var: görsel doğrulama için web konsolu ve komut satırı doğrulaması için MinIO istemcisi.
MinIO web konsolunu kullanma
Tarayıcınızı açın ve
http://localhost:9001adresine gidin.Kimlik bilgilerini isteyen bir giriş ekranı göreceksiniz:
MinIO web arayüzü
Ortam değişkenleri olarak sağladığınız kimlik bilgileriyle giriş yapabilirsiniz — benim örneğimde
admin/password123.Giriş yaptıktan sonra MinIO panosuna yönlendirilirsiniz. Ana sayfa depolama kullanımını, kova sayısını ve sistem sağlığını gösterir. Sol kenar çubuğunda kova oluşturma, kullanıcı yönetimi ve metrikleri görüntüleme seçenekleri bulunur.
MinIO web arayüzü üzerinden kova oluşturma
Her şeyin çalıştığını doğrulamak için bir test kovası oluşturun. Kenar çubuğunda "Buckets"a tıklayın, ardından "Create Bucket"a.
test-bucketgibi bir ad verin ve oluştur’a tıklayın. Kova listenizde görünüyorsa, MinIO doğru çalışıyor ve veri depoluyor demektir.MinIO web arayüzü üzerinden kova oluşturma
MinIO istemcisini (mc) kullanma
MinIO istemcisi, AWS CLI’da olduğu gibi MinIO ile etkileşim kurmanızı sağlayan bir komut satırı aracıdır.
Kurmak için şu komutlardan birini çalıştırın:
Şimdi istemciyi yerel MinIO örneğinize bağlamak için şu komutu çalıştırın:
Bu, MinIO sunucunuza işaret eden
localadlı bir takma ad oluşturur. Artık buna karşı komutlar çalıştırabilirsiniz.Kovalarınızı listeleyin:
Kovaları listeleme
Daha önce test kovasını oluşturduysanız, çıktıda göreceksiniz. Komut boş dönerse ya da kovalarınızı gösterirse, MinIO çalışıyor demektir.
Şimdi kovaya bir test dosyası yükleyebilirsiniz:
Ve ardından orada olduğunu doğrulayın:
Çıktıda
test.txtgörüyorsanız, her şeyi doğru şekilde kurmuşsunuz demektir.Bir kovadaki dosyaları listeleme
Bir şeyler çalışmıyorsa işte hızlı sorun giderme ipuçları:
Konteynerin çalışıp çalışmadığını
docker psile kontrol edin.minioadlı bir konteyner görmüyorsanız, başlamamış ya da çökmüş demektir.Logları
docker logs minioile görüntüleyin. Hâlihazırda kullanımda olan portlar veya veri dizinindeki izin problemleriyle ilgili hatalara bakın.Web konsoluna erişemiyorsanız, portların engellenmediğini
docker port minioile doğrulayın. 9000 ve 9001’in her ikisinin de doğru eşlendiğini görmelisiniz.Veri dizininde izin hatalarıyla karşılaşıyorsanız, erişim sorunlarını düzeltmek için
chmod -R 755 ~/minio/datakomutunu çalıştırın.Kalıcı Depolama ve Veri Birimleri
Varsayılan olarak konteynerler geçicidir — bir konteyneri kaldırdığınızda içindeki her şey kaybolur.
MinIO nesneleri, metaverileri ve yapılandırma dosyalarını depolar. Kalıcı depolamayı doğru ayarlamazsanız, konteyneri yeniden başlattığınız veya kaldırdığınız anda tüm verilerinizi kaybedersiniz.
Docker ile yerel birimler kullanma
Docker volume’leri ve bind mount’lar verilerinizi konteynerin dışında güvende tutar.
-v ~/minio/data:/datakullanırken veya Docker Compose’ta birim eşlemesi yaptığınızda MinIO her şeyi ana makinenize yazar. Konteyner/datakonumuna okur/yazar; ancak bu dosyalar aslında ana makinenizdeki~/minio/dataiçinde bulunur.Konteyneri durdurduğunuzda, kaldırdığınızda veya hatta imajı sildiğinizde — verileriniz
~/minio/dataiçinde kalır. Aynı dizine işaret eden yeni bir MinIO konteyneri başlatın; tüm kovalarınız, nesneleriniz ve ayarlarınız bıraktığınız gibi geri gelir.Bir birimi eşlemezseniz MinIO, konteynerin dahili dosya sistemini kullanır. Her şey, konteyneri durdurana kadar düzgün çalışır. Yeniden başlattığınızda, MinIO kovasız, nesnesiz ve yapılandırmasız sıfırdan başlar.
Daha önce gösterdiğim compose örneği, compose dosyanızın bulunduğu yerde bir
minio/dataklasörü oluşturur:MinIO veri klasörü
Yaygın depolama hataları
Birimsiz çalıştırmak en yaygın hatadır.
MinIO’yu başlatır, dosyalar yüklersiniz, kovalar oluşturursunuz ve her şey yolunda görünür. Sonra bir güncelleme veya yapılandırma değişikliği için konteyneri yeniden başlatırsınız. Tüm verileriniz kaybolur; çünkü ana makinede değil, konteynerin içinde saklanmıştır.
Gerçek veri koymadan önce Docker komutunuzun veya Compose dosyanızın birim eşlemesi içerip içermediğini her zaman kontrol edin.
İzin sorunları Docker, bağladığınız dizine yazamadığında meydana gelir.
Konteyner içindeki MinIO işlemi belirli bir kullanıcı olarak çalışır. Bu kullanıcının ana makine dizininde yazma izni yoksa MinIO başlarken çöker veya nesneleri saklamaya çalışırken sessizce başarısız olur.
Veri dizininizin yazılabilir olduğundan emin olarak bunu düzeltebilirsiniz:
Ya da konteyneri, ana makine kullanıcınızla eşleşen bir kullanıcıyla çalıştırın:
Kısacası, birimlerinizi bir kez doğru şekilde kurun; veri kaybı konusunda endişelenmenize gerek kalmasın.
Ortam Değişkenleri ve Temel Yapılandırma
MinIO, başlatılırken yapılandırmasını ortam değişkenlerinden okur.
Bu, yapılandırma dosyalarını düzenlemeden veya konteynerleri yeniden oluşturmadan MinIO’nun davranışını değiştirebileceğiniz anlamına gelir. Bu değişkenleri
docker runkomutunda veya Docker Compose dosyanızda ayarlarsınız.Erişim anahtarları ve kimlik bilgileri
MinIO, kimlik doğrulama için iki ortam değişkeni gerektirir:
MINIO_ROOT_USERveMINIO_ROOT_PASSWORD.Bunlar, MinIO örneğiniz üzerinde tam denetime sahip olan kök yönetici hesabını oluşturur. Kök kullanıcı kovalar oluşturabilir, diğer kullanıcıları yönetebilir, ilkeler belirleyebilir ve depolanan tüm nesnelere erişebilir.
Bunları
docker runsırasında şu şekilde ayarlayın:Veya Docker Compose’ta:
Üretimde varsayılan kimlik bilgilerini kullanmayın. Bu yazıdaki örneklerde basitlik için
adminvepassword123kullanıldı, ancak gerçek dağıtımlar için bunlar çok kötü seçimlerdir.En az 8 karakterli güçlü bir parola seçin. Daha da iyisi, rastgele oluşturulmuş kimlik bilgileri kullanın ve bir parola yöneticisinde veya gizli yönetim sisteminde saklayın.
Sürüm kontrolüne eklediğiniz Docker Compose dosyalarına kimlik bilgilerini gömmeyin. Bunun yerine ortam dosyalarını kullanın:
Ardından gerçek kimlik bilgilerinizle bir
.envdosyası oluşturun ve.gitignore’a ekleyin.Port yapılandırması ve ağ
MinIO’nun düzgün çalışması için iki porta ihtiyacı vardır.
Bu portları Docker komutunuzda eşleyin:
Port çakışmaları, ana makinenizde 9000 veya 9001’i zaten başka bir servisin kullanmasıyla ortaya çıkar.
Konteyneri başlatırken "bind: address already in use" gibi bir hata görürsünüz. Bunu farklı ana makine portlarına eşleyerek düzeltin:
Artık MinIO’nun API’si
http://localhost:9090adresinde, konsol isehttp://localhost:9091adresinde. Konteyner içinde hâlâ 9000 ve 9001 kullanılır; ancak dışarıdan farklı portlar üzerinden erişirsiniz.MinIO’yu başlatmadan önce bir portu hangi sürecin kullandığını kontrol etmek için şu komutlar yardımcı olur:
Bir portu hangi sürecin kullandığını kontrol etme
Aynı makinede birden fazla MinIO örneği çalıştırıyorsanız, her birine benzersiz port eşlemeleri vererek çakışmaları önleyin.
Docker ile MinIO’yu Dağıtık Modda Çalıştırma
Dağıtık mod, yüksek erişilebilirlik ve veri yedekliliği için MinIO’yu birden çok sunucu ve sürücüye yayarak çalıştırır.
Geliştirme veya test için buna ihtiyacınız yok. Tek düğümlü mod çoğu kullanım durumu için fazlasıyla yeterlidir. Sunucu arızalansa bile çevrimiçi kalması gereken bir üretim dağıtımı planlamıyorsanız bu bölümü atlayın.
Dağıtık MinIO ne zaman mantıklıdır
Hata toleransı gerektiğinde dağıtık modu kullanın.
Dağıtık bir kurulda bir sunucu devre dışı kalsa bile MinIO çalışmaya devam eder ve verileriniz erişilebilir kalır. Sistem, nesneleri birden çok sürücüye ve sunucuya dağıtmak için erasure coding kullanır; böylece sürücüleri veya tüm düğümleri kaybetseniz de verileri kaybetmezsiniz.
Büyük ölçekli depolama için de dağıtık moda ihtiyaç duyarsınız. Terabaytlarca veya petabaytlarca veri depoluyorsanız, verileri birden çok makineye yaymak tek bir sunucunun sağlayabileceğinden daha iyi performans ve daha fazla kapasite sunar.
Yerel geliştirme bunların hiçbirini gerektirmez. Dağıtık mod, karmaşıklık ekler — birden çok makine veya VM, koordineli ağ ve dikkatli sürücü yapılandırması gerekir. S3 API’lerini test etmek veya dizüstü bilgisayarınızda nesne depolama çalıştırmak için tek düğümlü mod ihtiyacınızı karşılar.
Üretim ortamlarında, kesinti kabul edilemez olduğunda ve veri kaybı felaket boyutunda sonuçlar doğuracağında dağıtık mod kullanılır. Yedekleme sistemleri, veri gölleri veya kullanıcıların sürekli depolama erişimine bağlı olduğu uygulamaları düşünün.
Yüksek düzeyde kurulum özeti
Dağıtık MinIO, birden çok düğüme yayılmış en az dört sürücü gerektirir.
Her düğüm bir MinIO konteyneri çalıştırır ve tüm düğümler aynı sürücü yapılandırmasını görmelidir. Tek sürücülü düğümleri çok sürücülü düğümlerle karıştıramaz veya kurulumdan sonra sürücü sayısını değiştiremezsiniz.
Temel bir dağıtık kurulum şöyle görünür:
Koordinasyonu tek bir Compose dosyasında yönetebilirsiniz; ama uyarayım — uzun bir dosya olacaktır. Tüm düğümleri tanımlamanız, sürücü yollarını ayarlamanız ve hepsini birlikte başlatmanız gerekir.
İki sürücülü dört düğüm için eksiksiz bir örnek işte şöyle:
{1...4}sözdizimi, MinIO’ya iki sürücülü (data1 ve data2) dört düğüme (minio1’den minio4’e) bağlanmasını söyler. Her düğüm, ayrı ayrı erişebilmeniz için benzersiz port eşlemesi alır — 1. düğüm 9001/9091’i, 2. düğüm 9002/9092’yi vb. kullanır.minio-distributedağı, konteynerlerin birbirine ana makine adıyla ulaşabilmesini sağlar. Tüm düğümler aynı kimlik bilgilerini kullanmalı ve aynı sürücü düzenini görmelidir.Kümeyi başlatmak için önce veri dizinlerini oluşturun, ardından compose dosyasını çalıştırın
Dağıtık modda MinIO’yu çalıştırma
Hepsi bu! Web arayüzüne erişmek için aşağıdaki URL’lerden herhangi birini ziyaret edebilirsiniz:
Ancak tekrar edelim, gerçekten ihtiyacınız yoksa bunu kurmayın — dağıtık mod, çalışma süresi ve yedekliliğin ek karmaşıklığı haklı çıkardığı üretim iş yükleri içindir.
Ayrıca, tam bir üretim ortamı için TLS, tek konsol uç noktası, harici birimler/diske gibi şeyleri de isteyebilirsiniz.
Docker’da MinIO Çalıştırırken Yaygın Sorunlar
MinIO Docker sorunlarının çoğu yanlış yapılandırılmış birimler, portlar veya kimlik bilgilerinden kaynaklanır.
Gerçekte karşılaşacağınız sorunlar ve bunları hızlıca nasıl çözeceğiniz şöyle.
Konteyner başlıyor ancak web arayüzüne erişilemiyor
docker psçalıştırırsınız ve konteynerin çalıştığını görürsünüz; ancakhttp://localhost:9001hiçbir şey döndürmez veya zaman aşımına uğrar.Bunu çözmek için önce konsol portunun doğru eşlendiğini kontrol edin:
9001/tcp -> 0.0.0.0:9001görmelisiniz. Port 9001 listelenmiyorsa, docker run komutunuzda veya Compose dosyanızda eşlemeyi unutmuşsunuzdur.Ayrıca MinIO loglarını kontrol edin:
"Console: http://..." diyen satırı arayın — bu, MinIO’nun aslında hangi adreste dinlediğini söyler. Beklediğinizden farklı bir port görürseniz,
--console-addressbayrağınız hatalı olabilir.Bağlanan birimlerde izin hataları
MinIO başlarken çöküyor veya
/datakonumuna yazmaya çalıştığında loglarda "permission denied" hataları görüyorsunuz.MinIO işlemi konteyner içinde belirli bir kullanıcı olarak çalışır ve bu kullanıcının bağladığınız dizinde yazma iznine ihtiyacı vardır. Şununla düzeltin:
Veya Linux’ta konteyneri kendi kullanıcı kimliğinizle çalıştırın:
Diğer servislerle port çakışmaları
Konteyneri başlatırken "bind: address already in use" hatası alıyorsunuz.
Bu, 9000 veya 9001 portunu başka bir servisin zaten kullandığı anlamına gelir. Neyi kullandığını bulun:
Ve MinIO’yu bunun yerine farklı ana makine portlarına eşleyin:
Artık API’ye
localhost:9090, konsola iselocalhost:9091üzerinden erişin.Kimlik bilgileri beklendiği gibi çalışmıyor
MINIO_ROOT_USERveMINIO_ROOT_PASSWORDayarladınız ancak giriş yapamıyorsunuz veya konteyner başlamıyor.Çözmek için, ortam değişkenlerini gerçekten iletip iletmediğinizi kontrol edin:
Çıktıda
MINIO_ROOT_USERveMINIO_ROOT_PASSWORDarayın. Eksiklerse,-ebayraklarını ya da Compose dosyanızdakienvironment:bölümünü atlamışsınızdır.MinIO ayrıca parolaların en az 8 karakter olmasını gerektirir. Parolanız daha kısaysa konteyner bunu reddedebilir veya varsayılanı kullanabilir.
Mevcut bir kurulda kimlik bilgilerini değiştirdiyseniz, konteyneri tamamen durdurup kaldırın ve sonra sıfırdan başlatın:
Eski kimlik bilgisi dosyaları veri dizininizde kalmış olabilir ve çakışmalara neden olabilir.
Docker ile MinIO Çalıştırmada En İyi Uygulamalar
Yaygın hatalardan kaçınmak ve MinIO kurulumunuzu sürdürülebilir kılmak için şu uygulamaları izleyin.
Tekrarlanabilirlik için Docker Compose kullanın. Bir Compose dosyası tam yapılandırmanızı — portları, birimleri, ortam değişkenlerini ve komutları — belgelendirir. Sürüm kontrolüne alabilir, ekibinizle paylaşabilir ve farklı makinelerde birebir aynı kurulumları yeniden oluşturabilirsiniz. Kabuk geçmişinizden uzun
docker runkomutları çalıştırmak yapılandırma kaymasına ve hatalara yol açar.Her zaman kalıcı depolamayı yapılandırın. Gerçek veri depolamadan önce bir birim veya bind mount eşleyin. Konteynerler geçicidir — bu adımı atlarsanız, konteyner yeniden başladığında her şeyi kaybedersiniz.
docker inspect minioile kurulumunuzu kontrol edin ve birim eşlemesinin doğru olduğunu doğrulayın.Kimlik bilgilerini komut geçmişinden uzak tutun. Parolaları doğrudan
docker runkomutlarına koymayın veya Compose dosyalarınızda git’e işlemeyin. Docker Compose ile ortam dosyaları (.env) kullanın veya çalışma zamanında ortam değişkenleriyle iletin..envdosyasını hemen.gitignore’a ekleyin.Tek düğümlü modu yalnızca geliştirme için kullanın. Dağıtık mod karmaşıktır ve kurulum süresi uzundur. Dizüstü bilgisayarınızda yüksek erişilebilirlik veya erasure coding’e ihtiyacınız yok. Kesintinin gerçekten önemli olduğu üretim için dağıtık dağıtımları saklayın.
Başlangıç sırasında logları izleyin. MinIO’yu ilk kez başlatırken
docker logs -f minioçalıştırın. Loglar, API uç noktasını, konsol URL’sini ve yapılandırma hatalarını gösterir. Bir sorun varsa, hiçbir şeyin neden çalışmadığını merak etmek yerine anında görürsünüz.Bu uygulamaları takip ederseniz MinIO kurulumunuz ilk günden sağlam olacaktır.
Sonuç
Docker ile MinIO’yu çalıştırmak, bir dakikadan kısa sürede makinenizde S3 uyumlu nesne depolamaya sahip olabileceğiniz anlamına gelir.
Geliştirme, test ve küçük ölçekli projeler için Docker’da tek düğümlü MinIO ihtiyacınız olan her şeyi sunar. Tam S3 API uyumluluğu, yönetim için web konsolu ve bulut servislerine bağımlı olmadan veya kullanmadığınız depolama için ödeme yapmadan verileriniz üzerinde tam kontrol elde edersiniz.
Temellerle başlayın: kalıcı birimler ve güvenli kimlik bilgileri içeren basit bir
docker runkomutu veya bir Docker Compose dosyası (ikincisini tercih edin). Kurulumunuzu test edin, çalıştığını doğrulayın ve yalnızca gerçekten ihtiyaç duyduğunuzda karmaşıklık ekleyin.Dağıtık mod, yüksek erişilebilirlik ve üretim düzeyinde yapılandırmalar bir nedenle vardır — ancak bu neden yerel geliştirme değildir. Üretime dağıtırken, kesinti size para kaybettirdiğinde veya kaybedilemeyecek verileri depoladığınızda bu kurulumlara geçin. O zamana kadar işleri basit tutun ve altyapıyı yönetmek yerine uygulamanızı geliştirmeye odaklanın.
Daha karmaşık Docker konularına dalmaya hazır olduğunuzda, Docker ve Kubernetes ile Konteynerleştirme ve Sanallaştırma kursumuza göz atın.