2015-03-19 41 views
12

Birkaç saniye içinde Dockerfile ile bir kapsayıcı oluşturabilirsin, o zaman neden insanların docker kabının içinde sanal bir ortam kurması gerekiyor?Neden insanlar bir docker kabında virtualenv oluşturuyor?

Sanal makinede bir "sanal makine" gibi mi?

+5

Daha fazla yalıtım, özellikle havai neden olmadığı için asla kötü değildir. Ve bunun iyi bir alışkanlık olduğuna inanıyorum. –

+0

Eklemeliyim: virtualenv bir sanal makine değil. Docker da değil. virtualenv, python yorumlayıcısının bir kopyasını yaratır ve bağımlılıklarınızı nerede sakladığınıza bağlı olarak kütüphaneler için ayrı bir yer oluşturur. Docker için neredeyse aynı konsept, bağımlılıklarınızı katmanlarda tutarsınız ve kapsayıcınız için bellek, CPU, depolama, ağ ve benzeri bölümleri ayırırsınız, tam bir işletim sistemi çalıştırmazsınız. –

+3

Hiç virtualenv kullanmamın tek nedeni, sistem bağımlılığı ile çakışıyor olmanızdır. Bir OS bileşeni, bir python lib'in farklı bir sürümünü kullanıyor. –

cevap

15

Ben Docker içinde virtualenvs ile çalışıyorum ve ben birkaç nedeni olduğunu düşünüyorum:

  1. Eğer sistemin piton paketlerden uygulamanızı izole etmek isteyebilirsiniz
  2. Eğer piton özel bir sürümünü çalıştırmak isteyebilirsiniz ama hala bakir sistemin paketleri tutmak
  3. belirli bir uygulama için yüklenmiş paketler üzerinde ince taneli kontrolü gerekebilir farklı gereksinimlere birden çok uygulama çalıştırmanız gerekebilir

Bunların hepsi, kurulumun sonunda biraz pip install virtualenv eklemek için makul nedenler olduğunu düşünüyorum! :)

+4

Docker politikası "konteyner başına bir uygulama" olma eğiliminde olduğundan, dördüncü nokta iyi bir neden olmayabilir. –

+1

teşekkürler @ BenoîtLatinier muhtemelen aynı şeyi söylüyorsunuz: Uygulamayı bir kap içinde çalıştırdığınız için söylüyorum, bu gereksinimlerini izole etmenin iyi bir yoludur :) – gru

+0

Daha önce "install pip install virtualenv" 'ye ihtiyacınız olmaz mı? dockerfile'da, virtualenv dizinini oluşturun ve kurulumun bitiminden ziyade paketlerin geri kalanını 'pip' kurun. – Davos

İlgili konular