Kelime konteyneri , modern Linux çekirdeğinde bulunan hafif bir sanallaştırma teknolojisine karşılık gelir, bu teknoloji FreeBSD hapishanelerine çok benzer.
Daha eski, konteyner kullanamayan bir Linux çekirdeği, işlemleri aynı anda çalıştırabilir. Sistemin bazı özellikleri, işlem ortamı ya da işlem belleği gibi, işlemeye özeldir: yalnızca bu özelliklere ve işletim sistemine sahip olan süreç bu verilere erişebilir. (Bazı ps uygulamaları gibi birçok boşluk var, ancak bu aslında doğru!) Örneğin, diğer bazı özellikler dosya sistemi ve ağ arayüzleri gibi işlemler arasında paylaşılıyor.
Kapsayıcıya sahip, modern bir Linux çekirdeği, sistemin daha fazla özniteliğini bir işlem veya bir işlem grubuyla ilişkili özel veriler olarak ele alabilir. Sonuçta ortaya çıkan içerik bir kapsayıcıdır ve dosya sistemini ve işletim sistemi tarafından başlatılan ağ arabirimlerini kullanarak “başlangıç kapsayıcılarında” bir program çalıştırmak yerine, başka kaplarda işlemleri çalıştırmak mümkündür; farklı ağ arayüzleri listesi. Bu nedenle, farklı kaplarda çalışan iki işlem yalnızca çekirdeği paylaşır. Belki bir süreci farklı bir dosya hiyerarşisinde çalıştırabilen chroot komutunu biliyorsunuzdur , kapsayıcılar fikri bir kaç adım daha ileri götürüyor.
Tabii ki, bu sadece çok kaba bir açıklama, ancak umarım konteynerlerin ne olduğu fikrine açıklık getirmeye yardımcı olur. Şimdi, neye yararlar?
Linux konteyner yeteneklerine Popüler bir arayüz ile uygulanır taneleri docker, dosya sistemleri (temsil eserleri üretmek için kullanılabilecek bir komut satırı yardımcı programı liman işçisi görüntüleri bu dosya sistemleri erişilebilir kaplarda) ve çalıştırma işlemleri. Bu yazılım paketi ayrıca birkaç konteynerin özel bir ağda iletişim kurmasını sağlamak için geçici sanal ağ sistemleri de oluşturabilir.
Konteyner tabanlı teknolojiler aşağıdakilere uygundur:
- Açıklayın ölçeklenebilir karmaşık dağıtımları.
- Uygulama geliştiricilere, üretim ortamına çok benzer bir ortam sağlayın.
- Yazılım artefaktları tipik olarak sadece bir uygulama paketini değil, tam bir işletim sistemini tanımladığından, değişmez sunucu modelini uygulayın.
(Sanal Kutu gibi diğer sanallaştırma teknolojilerine aşina göründüğünüze göre, bu teknolojilerin yukarıdaki üç noktaya da uygun bir şekilde hitap edebildiğini söyleyebiliriz. Günümüzde, sanallaştırma teknolojilerinin oldukça küçük bir yelpazesi var ve onların popülerlik sorusunu karşılaştırabiliriz. bilgisayar dillerinin popülaritesi ile ilgili bazı bağlamlar: muhtemelen her bir çözümün teknik özelliklerine ve aynı zamanda sadece “şansı” olarak etiketleyeceğim birçok etkene bağlı.