Uygulamaları sunuculara dağıtırken, genellikle uygulamanın kendisiyle ne paketlediği ile platformdan ne beklediğini (işletim sistemi ve yüklü paketler) arasında bir ayrım vardır. Bunun bir noktası, platformun uygulamadan bağımsız olarak güncellenebilmesidir. Bu, örneğin, tüm uygulamayı yeniden oluşturmadan platform tarafından sağlanan paketlere acil olarak güvenlik güncelleştirmelerinin uygulanması gerektiğinde faydalıdır.
Geleneksel olarak güvenlik güncellemeleri, işletim sistemine paketlerin güncellenmiş sürümlerini yüklemek için bir paket yöneticisi komutu yürütülerek uygulanmıştır (örneğin, RHEL'de "yum update"). Ancak, konteyner görüntülerinin esas olarak hem uygulamayı hem de platformu bir araya getirdiği Docker gibi konteyner teknolojisinin ortaya çıkmasıyla, sistemi güncel bir konteynerle tutmanın kanonik yolu nedir? Hem ana bilgisayarın hem de kapsayıcıların kendi, bağımsız, ana bilgisayarda güncellenmesi ve güncelleştirilmesi gereken paket kümeleri vardır, kapların içindeki hiçbir paketi güncellemez. Docker konteynerlerinin özellikle öne çıktığı RHEL 7'nin piyasaya sürülmesi ile Redhat'ın konteynerlerin güvenlik güncellemelerini yapmanın tavsiye ettiği yolu duymak ilginç olurdu.
Seçeneklerden birkaçı üzerine düşünceler:
- Paket yöneticisinin ana bilgisayardaki paketleri güncellemesine izin vermek, kapların içindeki paketleri güncellemez.
- Güncellemeleri uygulamak için tüm konteyner görüntülerini yeniden oluşturmak zorunda kalmak, uygulama ile platform arasındaki mesafeyi bozuyor gibi görünüyor (platformu güncellemek Docker görüntülerini oluşturan uygulama oluşturma işlemine erişim gerektirir).
- Çalışan konteynerlerin her birinin içinde el ile çalıştırma komutları zahmetli görünüyor ve bir sonraki uygulama kapsayıcılarının uygulama sürümünden güncelleştirilmesinden sonra değişikliklerin üzerine yazılma riski var.
Yani bu yaklaşımların hiçbiri tatmin edici görünmüyor.
docker pull debian/jessie
görüntüyü güncellemek, daha sonra mevcut görüntü (ler )imi yeniden oluşturmak, kapları durdurmak ve yeniden çalıştırmak ( Yeni görüntü ile). Oluşturduğum görüntüler öncekilerle aynı isme sahip, bu yüzden başlangıç script ile yapılıyor. Sonra "isimsiz" resimleri kaldırdım. Daha iyi bir iş akışını kesinlikle takdir ediyorum.