paint-brush
Docker imajınızdan Pound'u nasıl dökebilirsiniz?by@infinity
2,195
2,195

Docker imajınızdan Pound'u nasıl dökebilirsiniz?

Rishabh Agarwal4m2024/01/19
Read on Terminal Reader
Read this story w/o Javascript

Konteynerleştirme, bir uygulamanın kodunu herhangi bir altyapıda çalıştırmak için ihtiyaç duyduğu tüm dosya ve kitaplıklarla bir araya getiren bir yazılım dağıtım sürecidir. Docker görüntülerinizi optimize ederek genel geliştirme döngüsünü hızlandırabilirsiniz, ancak aynı zamanda mevcut güvenlik önlemlerini de güçlendirerek daha sağlam ve verimli bir yazılım ortamı sağlarsınız.
featured image - Docker imajınızdan Pound'u nasıl dökebilirsiniz?
Rishabh Agarwal HackerNoon profile picture

Yöneticim ona Yazılım geliştirme endüstrisinde devrim yaratan en önemli şeyi sorduğumda açıkça " Konteynerizasyon " dedi. Konteynerizasyon olmasaydı, günümüz yazılımının hızlı ölçeklendirilmesinin ve küresel dağıtımının çok daha zorlu bir zorluk olacağını savundu. Bugün kullanımda olan yazılımların neredeyse tamamının çeşitli kapasitelerde kapsayıcılaştırmadan yararlandığını ve modern yazılım ekosistemini güçlendirmedeki vazgeçilmez rolünün altını çizdiğini belirtmek dikkate değerdir!


Bilmeyenler için işte AWS'nin web sitesinden bir tanım ~

 *“Containerisation is a software deployment process that bundles an application's code with all the files and libraries it needs to run on any infrastructure. Traditionally, to run any application on your computer, you had to install the version that matched your machine's operating system.”*


Görüntüler, kapların oluşturulmasına rehberlik eden planlara benzer şekilde, kaplar için yapı taşları görevi görüyor. Bu nedenle, hafif ve akıcı konteyner görüntülerinin sürdürülmesi, dağıtım sürecini hızlandırır ve bu görüntülerin dağıtımını kolaylaştırır. Docker görüntülerinizi optimize ederek yalnızca genel geliştirme döngüsünü hızlandırmakla kalmaz, aynı zamanda mevcut güvenlik önlemlerini de güçlendirerek daha sağlam ve verimli bir yazılım ortamı sağlarsınız.


Bu makalede, etkili Docker görüntüleri oluşturmak ve sonuçta uygulamanızın verimliliğini artırmak için çeşitli yöntemleri inceleyeceğiz.

Kapsayıcı başına tek uygulamayı paketleyin

Konteyneri Sanal Makineler (VM'ler) gibi ele almak ve birden fazla uygulamayı tek bir konteyner içinde paketlemek yaygın bir hatadır. Bu uygulamanın konteynerinizin boyutunu arttırırken başka dezavantajları da vardır.


Bir konteynerin, çalıştırdığı uygulamayla yakından ilişkili bir kullanım ömrüne sahip olması beklenir. Kapsayıcı, uygulama başladığında başlamalı ve uygulama bittiğinde durmalıdır. Docker ve Kubernetes gibi konteyner düzenleme çözümleri, konteynerlerin bu özelliğine büyük ölçüde güveniyor. Bir kapsayıcı çok sayıda uygulama çalıştırıyorsa düzenleme araçları uygulamanızı tanımlayamayacak ve yeniden başlatamayacaktır!

Önbellekleri akıllıca kullanma

Görüntüler katmanlardan oluşur ve Dockerfile'ınızdaki her talimat yeni bir katman ekler. Docker gibi konteynerleştirme teknolojileri, yapım süresini kısaltmak için mümkün olan her yerde önceki yapılardan gelen katmanları yeniden kullanmaya çalışacak. Bir katmanın önbelleği, yalnızca önceki derlemelerden bu yana alttaki katmanlardan hiçbiri değişmediyse kullanılabilir.


İmaj oluşturma hızını arttırmak için aşağıda sık sık değişebilecek talimatları Dockerfile'ınıza yerleştirmek faydalı olacaktır. Bu yaklaşım, Docker'ın önbellekleme sisteminden daha etkili bir şekilde yararlanmasını sağlar. Örneğin, kaynak kodu sık sık değiştiğinden, sürecin sonuna doğru onu görsele kopyalamanız önerilir.


Görüntü önbelleği ~ https://cloud.google.com/architecture/best-practices-for-building-containers


Resimlerinizi daha hafif hale getirmese de oluşturma sürecinin hızlı ilerlemesini sağlar!

Gereksiz araçları kaldırın

Çoğu zaman, konteyner görüntüleri gereksiz araçlar içerir ve bu da görüntü şişkinliğine ve olası güvenlik açıklarına yol açar. Örneğin, netcat gibi araçlar, yetkisiz erişim elde etmeleri durumunda bilgisayar korsanları tarafından kapsayıcınızda kötü amaçlı faaliyetler gerçekleştirmek için kullanılabilir.


Kapsayıcı görüntünüzle birlikte gönderilen araç ve kitaplık setinin titizlikle korunması, güvenlik tehditlerinin azaltılmasına önemli ölçüde yardımcı olabilir ve ayrıca görüntülerin daha ince olmasını sağlar. Daha küçük görseller daha hızlı indirilir, bu da kapsayıcının daha hızlı başlatılacağı anlamına gelir.

En küçük temel resmi kullan

FROM komutunda referans aldığımız görüntüye temel görüntü adı verilir. Temel görüntü, oluşturulan son görüntünün boyutunu büyük ölçüde belirler. İmajımızın son boyutunu küçültmek için mümkün olan en küçük temel imajı kullanmaya çalışmalıyız.


Boyutları daha küçük olduğundan ve genellikle geliştirme faaliyetini desteklemek için yeterli araç içerdiğinden, mümkün olan her yerde dağ görsellerini kullanmaya çalışın.


Küçük bir görsel ihtiyacınız olan tüm araçları içermese bile onu kullanmak daha iyi bir seçenek olabilir. İhtiyacınız olan paketleri daha hafif temel görüntünün üzerine kurmak, yine de daha ağır görüntünün kullanılmasından tasarruf sağlayabilir.

Yalnızca gerekli olanı kopyalayın!

Kaynak kodunu kopyalarken istenmeyen dosya ve klasörlerin çoğu da kopyalanabilir. Bu, görüntünüzün boyutunu artırır ve sonuçta şişkinliğe yol açar. Kopyalanan dosya miktarını en aza indirmeye çalışın ve bunları minimumda tutmaya çalışın.


Konteyner görsellerini optimize etmenin ve en iyi uygulamaları oluşturmanın önemi sektörümüzde sıklıkla göz ardı ediliyor. Ancak bu uygulamalara bağlı kalmanın getireceği önemli faydalar göz ardı edilemez. Geliştiriciler olarak ince ve hızlı kapsayıcı görüntülerin oluşturulmasına sürekli olarak öncelik vermek çok önemlidir.


Böylece bu makalenin sonuna geliyoruz. Umarım okurken keyif almışsınızdır!