Neden Uygulamaları Doğrudan NAS'ıma Kurmak Yerine Docker Kullanıyorum


Hala NAS'ınıza üreticinizin uygulama mağazasından uygulamalar mı yüklüyorsunuz? Artık durma zamanı. Ben, yerel bir uygulama mağazası yerine NAS'ımdaki uygulamaları yüklemek için yalnızca Docker'a güveniyorum. Neden? Aslında birkaç sebep var ve bunların neredeyse hepsi güvenlik etrafında dönüyor.

Docker Konteynerleri Sadece Onlara Erişim İzni Verdiğim Şeylere Erişir.

Docker'ın en sevdiğim özelliklerinden biri ne kadar güvenli olabileceğidir. Bir Docker konteyneri ile, gerçekten sadece ona verdiğim erişimlere sahiptir.

Son derece güvenli tutmak istiyorsam, Docker'ın konteynerin depolama için erişebileceği, ancak başka hiçbir şeyin dokunamayacağı ayrılmış bir hacim oluşturmasını sağlayabilirim (ve o da başka bir şeye dokunamaz). Ya da, işletim sisteminden konteynere bir klasör (veya belirli bir dosya) bağlamayı seçebilirim.

Docker konteynerine verdiğim erişimin yanı sıra, tamamen kendi kendine yeterlidir. Aslında, başka bir ağ oluşturmadıkça, başka Docker konteynerleriyle yerel olarak iletişim kuramaz; birden fazla konteynerin kullanması için bir ağ oluşturmalıyım, başka bir ağ adaptörü belirtmeliyim ya da birden fazla konteyneri aynı anda başlatmak için Docker Compose kullanmalıyım.

Bunlar, Docker'ın sunduğu harika güvenlik özellikleridir ve bu durum Docker'ı birçok uygulama mağazasından daha güvenli hale getirir. Örneğin, NAS sisteminizin yerel uygulama mağazasından bir uygulama kurduğunuzda, o uygulamanın tüm dosyalarınıza ve klasörlerinize yerel olarak erişme şansı oldukça yüksektir. Eğer kurulum sırasında erişim verilmezse, bir klasöre erişim izni sağladığınızda genellikle tümüne erişimi olacaktır.

Bu her NAS sistemi için geçerli değil, ancak birçok sistem bu şekilde çalışıyor. Synology sistemlerimle geçirdiğim zaman boyunca, bu şekilde çalıştılar. Bu büyük bir dezavantaj olmasa da, bir uygulamayı NAS'ınızdaki diğer hizmetlerden ayırmaktan daha büyük bir güvenlik riski taşımaktadır.

Docker'ın Esnekliği Her Zaman Yerel Uygulama Mağazalarını Geçer

Bir Docker konteyneri, bir çeşit mini sanal makine olduğundan, genel yetenekleri karşılaştırılamaz. Docker'da tam bir işletim sistemi çalıştırmak aslında mümkündür.

Ancak, Docker’ın esnekliği kendi konteynerlerinizi oluşturabilme yeteneğinden gelmektedir. Docker konteynerleri önceden yüklenmiş ve yapılandırılmış hizmetlere sahip işletim sistemleri olduğundan, kendi konteynerlerinizi kolaylıkla oluşturabilirsiniz.

Birkaç hafta önce, Calibre-Web ile belirli bir şey yapmaya çalışıyordum ve çalışmıyordu. Güvenilir ev laboratuvarı dostum ChatGPT'ye döndüm ve güncellenmiş bağımlılıklarla özel bir Calibre-Web Docker konteyneri oluşturmak için çalışmaya başladım (kullandığım konteyner oldukça güncel olmayan bir yapıdaydı).

ChatGPT'nin yardımıyla, ihtiyaç duyduğum bağımlılıkları içeren ve istediğim şekilde çalışan bir Docker konteyneri oluşturabildim, resmi Docker konteynerinin ihtiyaçlarımı karşılamadığına rağmen. Eğer yerel bir uygulama mağazası kullanmaya mahkum olsaydım, bu asla bir seçenek olmazdı.

Eğer bir uygulama yerel bir uygulama mağazasında güncel değilse veya kullanılamıyorsa, bu durumda şansınız kalmıyor. Docker ile kullanmak istediğim herhangi bir uygulamanın yeni, güncellenmiş versiyonunu oluşturmak çok kolay.

Docker'ı öğrendiğinizde, diğer her şey hantal geliyor.

Docker'ın diğer harika bir özelliği, Windows'tan Ubuntu'ya ve TrueNAS'a kadar her platformda aynı olmasıdır. Bir sistemde Docker'ı öğrendiğinizde, aslında tüm sistemlerde Docker'ı öğrenmiş oluyorsunuz. Elbette bazı farklılıklar var (örneğin, klasör eşleme gibi), ancak Docker'ın büyük bir kısmı diğer tüm platformlarda aynıdır.

Ancak, yerel uygulama mağazaları bu kadar bir bütünlük içinde değil. Örneğin, Synology'nin uygulama mağazası UGREEN'in ve Terra Master'ın mağazalarından büyük farklılıklar gösterecek.

Ancak, Docker ile, tüm sistemler arasında tek bir şekilde birleşmiş olan diğer uygulama mağazaları kadar kolay hale getiren yönetim platformlarını kurabilirsiniz. Portainer, Docker'ı yönetmenin en sevdiğim yolu ve gerçekten oldukça basit.

Docker ile her sistemde aynı yığın üzerinde çalışabilirim.

Bazı uygulamalar tüm platformlarda mevcut değildir. Ya da mevcutlarsa, güncel olmayabilir veya artık kullanılmayabilir.

Docker ile bu basitçe bir sorun değil. Bir yığın (Docker Compose dosyası) bir sunucudan alıp diğerine taşıyabilirim ve hemen çalışmaya başlayabiliyorum. Ayrıca bir sunucudaki Docker'ı kapatıp tüm dosyaları diğerine taşıyabilir ve o diğer sunucuda Docker'ı başlatabilirim.

Docker konteynerlerinin taşınabilirliği, onları mevcut herhangi bir NAS'taki yerel mağazalardan gelen uygulamalara göre çok daha üstün kılıyor.

Docker'a Çoğu Uygulama Mağazasından Daha Çok Güveniyorum

Ağınızda çalıştırdığınız her uygulamaya, özellikle depolama sunucunuzun dosyalarına erişimi olan bir uygulamaya, doğasında gelen bir güven vardır. Birinci taraf bir uygulama mağazası kullanırken, uygulamanın kodunda kötü niyetli bir şey olmadığını sadece kabul etmeniz gerekir. Bir Docker konteyneri ile, genellikle, bunu kendiniz doğrulayabilirsiniz.

Docker kapsayıcısında çalışabilen birkaç kapalı kaynak hizmet dışında, kapsayıcıda çalışan çoğu hizmet açık kaynaktır. Bu, o hizmetin bilgisayarınızda çalıştırılması için gereken tüm kodu gözden geçirebileceğiniz ve görebileceğiniz anlamına gelir.

Bir konteyneri çalıştıran kodu görüntülemek ve kontrol etmek, bir hizmet kurduğunuzda tam olarak neler olduğunu doğrulayabileceğiniz anlamına gelir. Verileriniz nereye aktarılıyor? Kimin erişimi var? Ne yapıyor? Tüm bu bilgiler genellikle çoğu Docker konteyneri için mevcut durumdadır.

Sadece bu değil, Docker konteynerleri genellikle birinci taraf uygulama mağazalarından daha güncel tutulur. Bunun nedeni, şirketlerin ve hizmetlerin Docker konteynerlerini kendilerinin güncellemesidir; bu da birinci taraf uygulama mağazasının bir uygulama güncellemesini onaylamasını (ya da uygulamanın uygulama mağazası tarafından yayınlanmasını gerektirmesini) beklemek zorunda kalmamalarıdır.


Umarım şimdi NAS'ınızda herhangi bir başka uygulama mağazası yerine Docker'ı kullanmaya ikna oldunuzdur. Eğer Docker'a yeni başlıyorsanız, bence herhangi bir ev laboratuvarında çalışması gereken 10 konteyner var. Listem kesinlikle sizi harekete geçirecek ve Docker yolculuğunuza başlangıç yapmanıza yardımcı olacaktır.