Temel Çıkarımlar

  • Daha iyi güvenlik ve performans için resmi Docker görüntülerini kullanın. Kendi görsellerinizi oluşturmak, yanlış yapılandırmaya neden olabilir ve daha fazla zaman alabilir.
  • Tahmin edilemeyen davranışlardan ve bağımlılıklarla çakışmalardan kaçınmak için Docker görüntülerinin belirli sürümlerini kullanın. Belirli bir sürümün görüntülerini kullanarak çekin ve oluşturun.
  • Docker tarama komutunu kullanarak Docker görüntülerini güvenlik açıklarına karşı tarayın. Bir görselin uygulamanız için yeterince güvenli olup olmadığını belirleyin.

Docker en popüler konteynerleştirme yazılımıdır ancak herkes onu verimli bir şekilde kullanmaz. Docker'ın en iyi uygulamalarını takip etmezseniz uygulamalarınızı güvenlik sorunlarına veya performans sorunlarına karşı savunmasız bırakabilirsiniz.

Docker özelliklerini becerikli bir şekilde kullanmak için benimseyebileceğiniz bazı en iyi uygulamaları burada bulabilirsiniz. Bu önlemler güvenliği artırır ve bakımı yapılabilir Docker dosyaları oluşturmanızı sağlar.

instagram viewer

1. Resmi Docker Görsellerini Kullanın

Uygulamanızı kapsayıcıya alırken bir Docker görüntüsü kullanmanız gerekir. Özel yapılandırmayla bir görüntü oluşturabilir veya Docker'ın resmi görüntülerini kullanabilirsiniz.

Kendi görsellerinizi oluşturmak, tüm konfigürasyonu kendinizin halletmesini gerektirir. Örneğin, node.js uygulamasına yönelik bir görüntü oluşturmak için node.js'yi ve onun bağımlılıklarını indirmelisiniz. İşlem zaman alıcıdır ve tüm doğru konfigürasyonla sonuçlanmayabilir.

Docker, tüm doğru bağımlılıklarla birlikte gelen resmi bir node.js görüntüsü kullanmanızı önerir. Docker görüntüleri daha iyi güvenlik önlemlerine sahiptir, hafiftir ve çeşitli ortamlar için test edilmiştir. Resmi görselleri şurada bulabilirsiniz: Docker'ın resmi görselleri sayfa.

2. Docker Görüntüsünün Belirli Sürümlerini Kullanın

Genellikle, resmi bir görseli çektiğinizde, o görselin en son güncellenmiş sürümünü temsil eden, en son etikete sahip olan görseldir. Bu görüntüden her konteyner oluşturduğunuzda, bu son konteynerin farklı bir versiyonu olur.

Farklı Docker görüntü sürümleriyle derlemek, uygulamanızda öngörülemeyen davranışlara neden olabilir. Sürümler diğer bağımlılıklarla çakışabilir ve sonunda uygulamanızın başarısız olmasına neden olabilir.

Docker, belirli bir sürümün görüntülerini çekip oluşturmanızı önerir. Resmi görsellerde ayrıca belgeler bulunur ve en yaygın kullanım durumlarını kapsar.

Örneğin, bunun yerine liman işçisi alp çekme, kullanmak liman işçisi alpin çekme: 3.18.3. Docker bu belirli sürümü çekecektir. Daha sonra bunu ardışık yapılarda kullanarak uygulamanızdaki hataları azaltabilirsiniz. Görüntülerin belirli sürümlerini resmi Docker görüntü sayfasında, altında bulabilirsiniz. Desteklenen etiketler ve ilgili Dockerfile bağlantıları:

3. Görüntüleri Güvenlik Açıklarına Karşı Tarayın

Oluşturmak istediğiniz görüntünün herhangi bir güvenlik açığı içermediğini nasıl belirleyebilirsiniz? Tarayarak. Docker tarama komutunu kullanarak Docker görüntülerini tarayabilirsiniz. Sözdizimi aşağıdaki gibidir:

docker scan [IMAGE]

Bir görüntüyü taramak için önce docker'da oturum açmalısınız.

docker login

Ardından kontrol etmek istediğiniz belirli görüntüyü tarayın:

docker scan ubuntu: latest

Adı verilen bir araç Lavabo görüntüyü tarar ve güvenlik açıklarını önem derecesine göre listeler. Güvenlik açığının türünü ve nasıl düzeltileceği de dahil olmak üzere bununla ilgili bilgilerin bağlantılarını görebilirsiniz. Görüntünün uygulamanız için yeterince güvenli olup olmadığını taramadan anlayabilirsiniz.

4. Küçük Boyutlu Docker Görüntülerini Kullanın

Bir Docker görüntüsü aldığınızda, tüm sistem yardımcı programları ile birlikte gelir. Bu, ihtiyacınız olmayan araçlarla görüntü boyutunu artırır.

Büyük Docker görüntüleri depolama alanı kaplar ve konteynerlerin çalışma süresini yavaşlatabilir. Ayrıca güvenlik açıkları olasılığı daha yüksektir.

Yapabilirsiniz Alpine görsellerini kullanarak Docker görsellerinin boyutunu küçültün. Alp görüntüleri hafiftir ve yalnızca gerekli araçlarla birlikte gelir. Depolama alanını azaltarak uygulamanızın daha hızlı ve daha verimli çalışmasını sağlarlar.

Docker'daki resmi görsellerin çoğu için Alpine versiyonunu bulacaksınız. PostgreSQL için Alpine sürümlerine bir örnek:

5. Önbelleğe Alma Görüntü Katmanlarını Optimize Etme

Docker dosyasındaki her komut, görüntüdeki bir katmanı temsil eder. Katmanların farklı yararları vardır ve çeşitli işlevleri yerine getirirler. Docker Hub'daki resmi görsellere baktığınızda bunları oluşturmak için kullanılan talimatları göreceksiniz.

Dockerfile, görüntüyü oluşturmak için ihtiyacınız olan her şeyi içerir. Birçok kişinin nedenlerinden biri bu geliştiriciler Docker'ı sanal makinelere tercih ediyor.

Örnek bir Alp görüntüsünün yapısı şöyledir:

Uygulamanızı bir görüntüyü temel alarak oluşturduğunuzda, görüntüye daha fazla katman eklemiş olursunuz. Docker, Docker dosyasındaki talimatları yukarıdan aşağıya doğru çalıştırır ve bir katman değişirse Docker'ın sonraki katmanları yeniden oluşturması gerekir.

En iyi uygulama, Dockerfile'ınızı en az değişen dosyalardan en sık değişenlere doğru düzenlemektir. Kurulum gibi değişmeyen talimatlar dosyanın üst kısmında bulunabilir.

Bir dosyayı değiştirdiğinizde Docker, değiştirilen dosyalardan derler ve değişmeyen dosyaları onun üzerinde önbelleğe alır. Dolayısıyla süreç daha hızlı işliyor.

Yukarıdaki resimde gösterilen örneğe bakın. Uygulama dosyalarında bir değişiklik olursa Docker oradan derleme yapar; npm paketlerini tekrar kurması gerekmez.

Görüntüden derlerseniz süreç, diğer tüm katmanları yeniden oluşturmaktan daha hızlı çalışacaktır. Önbelleğe alma aynı zamanda Docker Hub'dan görüntülerin çekilmesini ve iletilmesini de hızlandırır.

7. .dockerignore Dosyası Kullanın

Dockerfile kullanarak bir görüntü oluştururken belirli bilgileri gizli tutmak isteyebilirsiniz. Bazı dosya ve klasörler projenin parçası olabilir ancak bunları oluşturma sürecine dahil etmek istemezsiniz.

Bir .dockerignore dosyası kullanmak, görüntü boyutunu önemli ölçüde azaltır. Bunun nedeni, oluşturma sürecinin yalnızca gerekli dosyaları içermesidir. Ayrıca dosyaların gizli tutulmasına ve gizli anahtarların veya parolaların açığa çıkmasının önlenmesine de yardımcı olur.

.dockerignore dosyası, Docker dosyanızla aynı klasörde oluşturduğunuz bir dosyadır. Bu bir metin dosyası, tıpkı bir .gitignore dosyasıoluşturma işlemine dahil etmek istemediğiniz dosyaların adlarını içerir.

İşte bir örnek:

8. En Az Ayrıcalıklı Kullanıcı Prensibini Kullanın

Varsayılan olarak Docker, komutları çalıştırma izni için yönetici olarak kök kullanıcıyı kullanır, ancak bu kötü bir uygulamadır. Konteynerlerden birinde bir güvenlik açığı varsa bilgisayar korsanları Docker ana bilgisayarına erişebilir.

Bu senaryoyu önlemek için özel bir kullanıcı ve grup oluşturun. Grubun hassas bilgileri koruması için gerekli izinleri ayarlayabilirsiniz. Bir kullanıcının güvenliği ihlal edilirse, projenin tamamını açığa çıkarmadan onu silebilirsiniz.

Burada bir kullanıcının nasıl oluşturulacağını ve izinlerinin nasıl ayarlanacağını gösteren bir örnek verilmiştir:

Bazı temel görüntülerin içinde oluşturulmuş sahte kullanıcılar bulunur. Kök kullanıcı izinleri yerine kurulu kullanıcıları kullanabilirsiniz.

Docker'ın En İyi Uygulamalarını Neden Benimsemelisiniz?

En iyi uygulamalar, güvenlik açıklarını azaltmanın ve daha temiz kod yazmanın harika bir yoludur. Kullandığınız her Docker özelliğine uygulayabileceğiniz birçok en iyi uygulama vardır.

İyi organize edilmiş bir proje, Kubernetes gibi diğer düzenleme araçlarıyla senkronizasyonu kolaylaştırır. Makalede özetlenenlerle başlayabilir ve Docker'ı öğrendikçe daha fazlasını benimseyebilirsiniz.