SORU
16 NİSAN 2013, Salı


Nasıl normal bir sanal makine Docker farklı?

the Docker documentation Docker ve tam bir VM arasındaki farkı anlamak için denemek için yeniden okumaya devam ediyorum. Nasıl dosya sistemi, yalıtılmış bir ağ ortamı, vb tam sağlamayı başarıyor. ağır olmadan?

Neden docker bir görüntü ise aynen öyle (varsa) yazılım için daha kolay sadece tutarlı bir üretim ortamına dağıtmak yerine görevlendirecek?

CEVAP
16 NİSAN 2013, Salı


Docker önceki LinuX Containers (LXC) kullanıyordu, ama runC (eski olarak da bilinir . anahtarlı ^strong>libcontainer), ana bilgisayar aynı işletim sisteminde çalışır. Bu ana işletim sistemi çok fazla kaynak paylaşımına olanak sağlar. Ayrıca AuFS gibi katmanlı dosya sistemi kullanır. Aynı zamanda sizin için ağ yönetir.

AuFS katmanlı dosya sistemi, bir bölümü sadece okuma ve yazma, ve bu arada birleştirebilirsiniz. Kaplar tüm arasında paylaştırılır ve her kap kendi yazma için mount veren salt okunur olarak işletim sistemin ortak parçaları olabilir.

Hadi boyutu 1GB kapsayıcı bir görüntü. Eğer Tam bir VM kullanmak istediğinizde, istediğiniz VMs 1GB kez x sayıda olması gerekir. İle LXC ve AuFS paylaşabilirsin toplu 1GB ve varsa 1000 kaplar hala belki sadece biraz fazla 1GB yer kaplar OS, varsayarak tüm çalışan aynı işletim sistemi görüntü.

Tam sanal bir sistem kaynakları için ayrılan kendine has alır, ve minimal paylaşımı. Daha fazla yalıtım olsun, ama çok daha ağır (daha fazla kaynak gerektirir.

LXC ile daha az izolasyon olsun, ama daha hafif ve daha az kaynak gerektirir. Kolayca ana bilgisayarında 1000 koşabilmek bile gerçek değil. Xen ile bunu yapmayı deneyin, ve gerçekten büyük bir ev sahibi olduğunuz sürece, bunun mümkün olduğunu sanmıyorum.

Tam sanal bir sistem genellikle birkaç dakika başlatmak için, LXC kaplar saniye alır, ve hatta daha az bir saniyeden bazen alır.

Sanal sistem her tür artıları ve eksileri vardır. Eğer garantili kaynakları ile tam bir yalıtım istiyorsanız, tam VM gitmek yoludur. Sadece birbirinden süreçleri izole etmek istiyorum ve kabul edilebilir ölçülerde bir ana bilgisayarda bi ton çalıştırmak istiyorsanız, o zaman LXC gitmek için yol olabilir.

Daha fazla bilgi için, LXC nasıl çalıştığını anlatan iyi bir iş yapmak this set of blog posts check out.

Sorduğun için aptal hissediyorum, ama neden docker bir görüntü ise aynen öyle (varsa) yazılım için daha kolay sadece tutarlı bir üretim ortamına dağıtmak yerine görevlendirecek?

İstikrarlı bir üretim ortamı dağıtmak daha kolay yapılır daha söyledi. Eğer şef ve kukla gibi araçları kullanırsanız bile, her zaman ana ve ortamlar arasında geçiş işletim sistemi güncellemeleri ve diğer şeyler var.

Docker ne ortak bir görüntü içine OS anlık verir ve kolay diğer docker ana dağıtmak için yapar. Yerel olarak, dev, qa, eşya, vb, hepsi aynı görüntü. Tabii bu diğer araçlar, ama kolay ya da hızlı değil yapabilirsiniz.

Bu büyük için birim testi, diyelim ki var 1000 testleri ve ihtiyaçları olan bir veritabanına bağlanmak ve sipariş için değil kırmak bir şeye ihtiyacınız için seri olarak çalışır, böylece testleri üzerine basma, birbirlerine çalıştırmak her testte bir işlem ve geri). Docker ile veritabanının aynı Anlık karşı aday olacak tüm bildiğine göre veritabanınızın bir görüntü oluşturmak ve buna paralel olarak tüm testleri çalıştırın. LXC kaplarda paralel ve çalışan oldukları için hepsi aynı anda aynı kutuya çalıştırabilir ve testleri çok daha hızlı tamamlanır. Tam bir VM ile bunu yapmayı deneyin.

Düzenleme:Yorum... ..

İlginç! Hala kavramı kafamı karıştırdı sanırım "anlık[ting] işletim sistemi". Nasıl bir şey, işletim sisteminin bir resim yapmadan bunu?

Peki, eğer açıklamaya çalışayım. Temel bir resim ile başlayın, ve sonra değişiklikleri yapmak ve bu değişiklikleri docker kullanarak işlemek, ve bir görüntü oluşturur. Bu görüntü sadece temel farklılıklar içerir. Görüntü çalıştırmak istediğinizde, ayrıca taban gerekir, ve bu durumda taban katmanlı dosya sistemi kullanarak üstüne resim, katmanlar AUFS. AUFS birlikte farklı katmanları birleştirir ve sen istediğini al, ve sadece çalıştırmak gerekiyor. Daha fazla ve daha fazla resim eklemeye devam edebilirsiniz (katmanlar) ve yalnızca farklar tasarrufu devam edecektir. Genellikle ** 5, ender bir yerden hazır resimlerin üstünde "anlık" bütün kendini OS. docker oluşturur beri

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Bart Baker

    Bart Baker

    1 Aralık 2006
  • thenewboston

    thenewboston

    4 ŞUBAT 2008
  • Whizzpopping

    Whizzpopping

    10 Kasım 2005