Docker görüntüleri oluşturmak için en iyi uygulamaların özeti
Docker görüntüleri oluştururken izlenecek en iyi uygulamaların listesi aşağıdadır:
- OS temel görüntüsü
İşletim sistemi temel görüntü boyutunun, görüntü boyutları ve güvenlik açıkları üzerinde çok fazla etkisi olabilir. Ubuntu(~188 MB) gibi en çok indirilen temel görüntüye kıyasla Alpine(~5 MB) gibi minimal Docker görüntüleri seçmelisiniz.
- Temel görüntüler
Her temel görüntünün belirli bir amacı olmalı ve yeniden kullanılabilirliği sağlamak için mümkün olduğunca genel olmalıdır.
- Minimum ayrıcalıklara sahip Docker kullanıcıları
Docker kullanıcıları yalnızca ihtiyaç duydukları ayrıcalıklara sahip olmalıdır. Örneğin KÖK kullanıcısı, konteyneri başlatmak için kullanılmamalıdır.
- Dockerignore’dan Yararlanın
Dockerignore, Docker görüntülerinizi olabildiğince yalın tutmak için kullanılabilir. Kök klasörünüzde .dockerignore adlı bir dosya oluşturabilir ve uygulamayı çalıştırmak için gerekli olmayan dosya ve dizinleri hariç tutmak için kullanabilirsiniz.
- AND veya COPY ile spesifik olun
AND veya öğesini kullanırken COPY, istediğiniz klasör veya dosyalarla ilgili spesifik olun. Görüntü boyutunu optimize etmenin kolay bir yoludur.
- Sabit etiket yerine belirli etiket
Docker etiketleri, belirli görüntü sürümleri/varyantları hakkında faydalı bilgiler iletir. Resmin hangi sürümünün çalıştığını izlemeyi ve geri almayı zorlaştırdığından ‘en son’ gibi sabit etiketler kullanmaktan kaçının.
- Görüntü yaşam döngüsü yönetimi
Bir görüntünün kullanımdan kaldırılmış bir sürümünü çalıştırmanız durumunda bir güvenlik ihlali meydana gelebilir. Bu nedenle, uygun bir görüntü yaşam döngüsü yönetimi uygulamak gerekir.
- Hassas bilgiler
Ortam değişkenleri, şifrelenmedikleri için sırları yönetmenin iyi bir yolu değildir. Sırları yönetmek için Hashicorp kasası gibi çözümler kullanılabilir.
- Çok aşamalı yapılar
Çok aşamalı yapılarla Dockerfile’ınızda birden çok ifade kullanırsınız. Çok aşamalı yapıları kullanarak, son görüntüde istemediğiniz her şeyi geride bırakarak eserleri bir aşamadan diğerine seçerek kopyalayabilirsiniz.
- Komutları birleştir
Dockerfile’deki her komut görüntüye bir katman eklediğinden, görüntü boyutunu küçültmenin bir yolu komutları birleştirmek. Örneğin, birden çok RUN komutu, tek bir RUN deyiminde birleştirilebilir.