Geliştirme ve dağıtım için Ubuntu kullanıyorum ve yalıtılmış bir ortam yaratma ihtiyacım var.
Bu amaç için Vagrant veya Docker'ı düşünüyorum. Artıları ve eksileri nelerdir veya bu çözümler nasıl karşılaştırılır?
Geliştirme ve dağıtım için Ubuntu kullanıyorum ve yalıtılmış bir ortam yaratma ihtiyacım var.
Bu amaç için Vagrant veya Docker'ı düşünüyorum. Artıları ve eksileri nelerdir veya bu çözümler nasıl karşılaştırılır?
2041
Cevap sayısını say: 10
Amacın izolasyon ise bence istediğin Docker.
Vagrant sanal bir makine yöneticisidir. Sanal makine konfigürasyonunun yanı sıra provizyonun kodlanmasına izin verir. Ancak, yine de büyük bir yüke sahip olan VirtualBox'a (veya başkalarına) bağlı olarak hala bir sanal makinedir . Çok büyük bir sabit disk dosyasına sahip olmanızı gerektirir, çok fazla ram alır ve performans çok iyi olmayabilir.
Öte yandan Docker, çekirdek grubunu ve LXC üzerinden ad alanını kullanır . Bu, ana bilgisayarla aynı çekirdeği ve aynı dosya sistemini kullandığınız anlamına gelir.
docker build Konteynerinizin provizyon ve konfigürasyonunu yapmak için Dockerfile komutunu kullanabilirsiniz . Dockerfile'unuzu nasıl yapacağınızla ilgili olarak docs.docker.com adresinde bir örneğiniz var ; çok sezgisel.
Vagrant'ı kullanmak isteyebilmenizin tek nedeni Ubuntu kutunuzda BSD, Windows veya Linux dışı bir geliştirme yapmanız gerekiyor. Aksi takdirde, Docker'a gidin.
1132
Yasal Uyarı: Vagrant yazdım! Fakat Vagrant'ı yazdığım için zamanımın çoğunu Docker gibi bir yazılım içeren DevOps dünyasında yaşayarak geçiriyorum. Vagrant'ı kullanan pek çok şirketle çalışıyorum ve çoğu Docker kullanıyor ve ikisinin nasıl etkileşime girdiğini görüyorum.
Çok fazla konuşmadan önce, doğrudan bir cevap: Özel senaryoda (yalnız başına çalışıyorsun, Linux üzerinde çalışıyorsun, Docker'ı üretimde kullanıyorsun), yalnız Docker'a bağlı kalabilir ve işleri basitleştirebilirsin. Diğer birçok senaryoda (daha fazla tartışıyorum), bu o kadar kolay değil.
Vagrant'ı Docker'la doğrudan karşılaştırmak doğru değil. Bazı senaryolarda, üst üste binerler ve büyük çoğunluğunda, yapmazlar. Aslında, daha uygun bir karşılaştırma Boot2Docker (Docker'ı çalıştırabilen minimum işletim sistemi) gibi bir şey karşısında Vagrant olacaktır. Vagrant, soyutlamalar açısından Docker'ın üzerinde bir seviyedir, bu nedenle çoğu durumda adil bir karşılaştırma değildir.
Vagrant, geliştirme amacıyla uygulamaları / hizmetleri çalıştırmak için bir şeyler başlattı. Bu VirtualBox, VMware'de olabilir. AWS, OpenStack gibi uzak olabilir. Bunların içinde, eğer kaplar kullanıyorsanız, Vagrant umursamaz ve şunları benimser: örneğin Docker kaplarını otomatik olarak kurabilir, aşağı çekebilir, inşa edebilir ve çalıştırabilir. Vagrant 1.6 ile Vagrant, liman tabanlı geliştirme ortamlarına sahiptir ve Docker'ın Linux, Mac ve Windows'ta Vagrant ile aynı iş akışına sahip kullanımını desteklemektedir. Vagrant burada Docker'ı değiştirmeyi denemez, Docker uygulamalarını benimser.
Docker, özellikle Docker kapsayıcılarını çalıştırır. Doğrudan Vagrant ile karşılaştırıyorsanız: özellikle daha spesifik (yalnızca Docker konteynerlerini çalıştırabilir), daha az esnek (bir yerde Linux veya Linux ana bilgisayarı gerektirir) çözümü. Tabi eğer üretimden ya da CI'den bahsediyorsan Vagrant ile kıyaslanamaz! Vagrant bu ortamlarda yaşamaz ve Docker kullanılmalıdır.
Kuruluşunuz tüm projeleri için yalnızca Docker konteynerleri kullanıyorsa ve yalnızca Linux'ta çalışan geliştiricileri varsa, tamam, Docker kesinlikle sizin için çalışabilir!
Aksi halde, Dogra’yı tek başına kullanmaya çalışmaktan fayda göremiyorum, çünkü Vagrant’ın sunduğu şeylerin çoğunu kaybedersiniz, ki bunlar gerçek iş / verimlilik avantajlarına sahiptir:
Vagrant, VirtualBox, VMware, AWS, OpenStack, vb. Makineleri başlatabilir. Ne istediğin önemli değil, Vagrant onu başlatabilir. Docker kullanıyorsanız, Vagrant bunlardan herhangi birine Docker'ı yükleyebilir, böylece bunları bu amaç için kullanabilirsiniz.
Vagrant, tüm projeleriniz için tek bir iş akışıdır. Ya da başka bir deyişle, insanların bir projeyi Docker konteynerinde olup olmadığına bakmayı öğrenmesi gereken tek şey budur. Örneğin gelecekte, bir rakip doğrudan Docker'la rekabet etmek için ortaya çıkarsa, Vagrant da bunu yönetebilecek.
Vagrant Windows (XP'ye geri dön), Mac (10.5'e geri dön) ve Linux (çekirdeğe 2.6 geri dön) üzerinde çalışıyor. Her üç durumda da iş akışı aynıdır. Docker kullanıyorsanız Vagrant, Docker'ı bu sistemlerin üçünde de çalıştırabilecek bir makine (VM veya uzak) başlatabilir.
Vagrant, ağ oluşturma ve klasörleri senkronize etme gibi bazı gelişmiş veya önemsiz şeyleri nasıl yapılandıracağını bilir. Örneğin: Vagrant, bir makineye veya iletme bağlantı noktalarına statik bir IP'nin nasıl bağlanacağını bilir ve yapılandırma, hangi sistemi kullanırsanız kullanın (VirtualBox, VMware, vb.) Aynıdır. uzak makineye dosya (VirtualBox paylaşılan klasörler, NFS, rsync, Samba [eklenti], vb.). Docker kullanıyorsanız, Vagrant'sız bir VM'li Docker bile, bunu manuel olarak yapmak zorunda kalırsınız ya da bu durumda Vagrant'ı yeniden icat etmek zorunda kalırlardı.
Vagrant 1.6, liman işçisi geliştirme ortamları için birinci sınıf desteğe sahiptir . Bu Linux'ta sanal bir makine başlatmayacak ve otomatik olarak Mac ve Windows'ta sanal bir makine başlatacak. Sonuçta Docker ile çalışmanın tüm platformlarda aynı olması ve Vagrant ağ oluşturma, senkronize edilmiş klasörler vb.
Vagrant yerine Docker'ı kullanmanın lehine duyduğum belirli sayaç argümanlarını ele almak için:
"Daha az hareketli parça" - Evet, her proje için münhasır Docker kullanıyorsanız olabilir. O zaman bile, Docker'ın kilitlenmesi için esneklikten ödün veriyor. Docker'ı herhangi bir proje, geçmiş, şimdi veya gelecek için kullanmamaya karar verirseniz, daha fazla hareketli parçaya sahip olacaksınız. Vagrant'ı kullanmış olsaydın, kalanını destekleyen hareketli bir parçaya sahip olursun.
"Bu daha hızlı!" - Linux kapsayıcılarını çalıştırabilecek ana makineye sahip olduğunuzda, Docker bir kapsayıcıyı çalıştırırken herhangi bir sanal makinenin başlattığından çok daha hızlıdır. Ancak sanal bir makine (veya uzak makine) başlatmak bir kerelik maliyettir. Gün boyunca, çoğu Vagrant kullanıcısı sanal makinelerini asla tahrip etmiyor. Geliştirme ortamları için garip bir optimizasyon. Docker'ın gerçekten parladığı üretimde, kapları hızla yukarı / aşağı döndürme ihtiyacını anlıyorum.
Umarım Docker'ı Vagrant'la karşılaştırmanın çok zor olduğunu ve doğru olmadığını düşünüyorum. Dev ortamlar için Vagrant daha soyut, daha geneldir. Docker (ve Vagrant gibi davranabilmenin çeşitli yolları) Vagrant'ın sunduğu her şeyi göz ardı ederek Vagrant'ın belirli bir kullanım durumudur.
Sonuç olarak: son derece spesifik kullanım durumlarında, Docker kesinlikle Vagrant'ın yerine geçecek. Çoğu durumda, öyle değil. Vagrant Docker kullanımınızı engellemez; Aslında bu deneyimi daha pürüzsüz hale getirmek için elinden geleni yapıyor. Bunun doğru olmadığını görürseniz, Vagrant'ın amacı herhangi bir sistemle eşit derecede iyi çalışmaktır, çünkü işleri geliştirmek için önerilerde bulunmaktan memnuniyet duyarım.
Umarım bu işleri temizler!
2304
Ben Docker'ın yazarıyım.
Kısa cevap, makineleri yönetmek istiyorsanız Vagrant kullanmanız gerektiğidir. Uygulama ortamları oluşturmak ve çalıştırmak istiyorsanız Docker'ı kullanmalısınız.
Vagrant, sanal makineleri yönetmek için bir araçtır. Docker, uygulamaları hafif kaplara paketleyerek uygulamaları oluşturmak ve dağıtmak için bir araçtır. Bir kapsayıcı hemen hemen her yazılım bileşenini bağımlılıklarıyla birlikte (çalıştırılabilir dosyalar, kütüphaneler, yapılandırma dosyaları vb.) Tutabilir ve bunu garantili ve tekrarlanabilir bir çalışma zamanı ortamında çalıştırabilir. Bu, uygulamanızı bir kez oluşturmayı ve herhangi bir yere dağıtmayı çok kolaylaştırır - test için dizüstü bilgisayarınızda, ardından canlı dağıtım için farklı sunucularda vb.
Docker'ı yalnızca Linux'ta kullanabileceğiniz yaygın bir yanılgıdır. Bu yanlış; Docker'ı Mac ve Windows'a da yükleyebilirsiniz. Mac'e yüklendiğinde Docker, konteyneriniz için sarmalayıcı görevi gören küçük bir Linux VM'sini (diskte 25 MB!) Bir araya getirir. Kurulduktan sonra bu tamamen şeffaftır; Docker komut satırını tamamen aynı şekilde kullanabilirsiniz. Bu size her iki dünyanın da en iyisini sunar: uygulamanızı çok hafif, test etmesi kolay ve hareket etmesi kolay olan kaplar kullanarak test edebilir ve geliştirebilirsiniz (örneğin, yeniden kullanılabilir kapları paylaşmak için https://hub.docker.com adresini ziyaret edin) . Docker topluluğu) ve sanal makinelerin yönetilmesinin nitrit-kumlu ayrıntıları hakkında endişelenmenize gerek yok; bu, yine de bir amaç için bir yoldur.
Teoride, Vagrant'ı Docker için bir soyutlama katmanı olarak kullanmak mümkündür. Buna karşı iki sebepten dolayı öneriyorum:
İlk olarak, Vagrant Docker için iyi bir soyutlama değil. Vagrant sanal makineleri yönetmek için tasarlandı. Docker, bir uygulama çalışma zamanını yönetmek için tasarlanmıştır. Bu, Docker'ın tasarım gereği bir uygulamayla daha zengin şekillerde etkileşime girebileceği ve uygulama çalışma zamanı hakkında daha fazla bilgiye sahip olacağı anlamına gelir. Docker'daki ilkeler, işlemler, günlük akışları, ortam değişkenleri ve bileşenler arasındaki ağ bağlantılarıdır. Vagrant'taki ilkel makineler makineler, blok aygıtları ve ssh anahtarlarıdır. Serseri basitçe yığının altında durur ve bir konteynırla etkileşime girmesinin tek yolu, başka bir tür makine gibi davranarak "önyükleme" yapıp "giriş yapabileceğini" yapmaktır. Yani, Docker eklentisi ile "sersem" yazabilirsiniz ve güzel bir şey olacak. Docker'ın yapabildiklerinin genişliğinin bir alternatifi mi? Yerli Docker'ı birkaç günlüğüne deneyin ve kendiniz görün :)
İkincisi, kilitlenme argümanı. "Vagrant'ı bir soyutlama olarak kullanırsanız, Docker'a kilitlenmeyeceksiniz!". Makineleri yönetmek için tasarlanan Vagrant'ın bakış açısına göre bu mükemmel bir anlam ifade ediyor: kaplar başka tür bir makine değil mi? Amazon EC2 ve VMware gibi, sağlama araçlarımızı da belirli bir satıcıya bağlamamaya dikkat etmeliyiz! Bu kilitlenmeye neden olur - Vagrant ile hepsini soyutlamak daha iyidir. Bunun dışında Docker'ın amacını tamamen kaçırıyor. Docker makineleri tedarik etmiyor; Uygulamanızı, herhangi bir yere bırakılabilen hafif, taşınabilir bir çalışma süresine sarar.
Uygulamanız için seçtiğiniz çalışma zamanının, makinelerinizi nasıl hazırladığınızla ilgisi yok! Örneğin, başkaları tarafından sağlanan makinelere (örneğin, sistem yöneticiniz tarafından dağıtılmış bir EC2 örneği, belki de Vagrant kullanarak) makinelere dağıtmak veya Vagrant'ın sağlayamadığı metal makineleri çıplak hale getirmek oldukça yaygındır. Tersine, Vagrant'ı, uygulamanızı geliştirmeyle ilgisi olmayan makineler (örneğin, kullanıma hazır bir Windows IIS kutusu veya başka bir şey) sağlamak için kullanabilirsiniz. Veya Dogra'yı kullanmayan projelere makine tedarik etmek için Vagrant'ı kullanabilirsiniz - örneğin bağımlılık yönetimi ve kum havuzu için belki yakut ve rvm kombinasyonlarını kullanırlar.
Özetle: Vagrant makineleri yönetmek içindir ve Docker uygulama ortamlarını oluşturmak ve çalıştırmak içindir.
1391
Docker'la ilgili hiçbir deneyimim olmadığını kabul ederek, çok fazla çekiş sağlayan gerçekten temiz bir çözüm gibi görünen hevesli bir gözlemci olarak cevabımdan önce çıkarım.
Vagrant ile iyi bir deneyimim var ve kesinlikle tavsiye ederim. Kesinlikle LXC tabanlı yerine VM tabanlı olması açısından daha ağır bir çözüm. Ancak, iyi bir dizüstü bilgisayar (8 GB RAM, i5 / i7 CPU), geliştirme araçlarının yanı sıra Vagrant / VirtualBox kullanarak VM çalıştırmada hiç sorun yaşamadım.
Vagrant'ın en güzel yanlarından biri, konfigürasyonun otomatikleştirilmesi için Kukla / Aşçı / Kabuk Betiği ile entegrasyondur . Üretim ortamınızı yapılandırmak için bu seçeneklerden birini kullanıyorsanız, alacağınız ile aynı olan bir geliştirme ortamı oluşturabilirsiniz ve bu tam olarak istediğiniz şeydir.
Vagrant'taki diğer harika şey, Vagrantfile'nizi uygulama kodunuzla birlikte versiyonlayabilmenizdir. Bu, ekibinizdeki herkesin bu dosyayı paylaşabileceği anlamına gelir ve herkesin aynı ortam yapılandırmasıyla çalıştığını garanti edersiniz.
İlginç bir şekilde, Vagrant ve Docker aslında ücretsiz olabilir. Vagrant, farklı sanallaştırma sağlayıcılarını desteklemek için genişletilebilir ve Docker'ın yakın gelecekte destek alabilecek bir sağlayıcı olması mümkün olabilir. Konuyla ilgili son tartışma için https://github.com/dotcloud/docker/issues/404 adresine bakın .
83
Çok fazla tamamlayıcılar.
Birkaç ay boyunca tüm projelerim için VirtualBox, Vagrant ve Docker kombinasyonunu kullanıyorum ve aşağıdaki avantajları şiddetle hissettim.
Vagrant'ta herhangi bir Chef solo provizyonu ile tamamen yapabilecekleriniz ve serseri dosyanız için tek yapmanız gereken, docker'ı yükleyen tek bir küçük kabuk betiği çalıştıran bir makine hazırlamak. Bu, her proje için Vagrant dosyalarımın neredeyse aynı ve çok basit olduğu anlamına geliyor.
İşte tipik bir Vagrantfile
# -*- mode: ruby -*- # vi: set ft=ruby : VAGRANTFILE_API_VERSION = "2" Vagrant.configure(VAGRANTFILE_API_VERSION) do |config| config.vm.box = "mark2" config.vm.box_url = "http://cloud-images.ubuntu.com/vagrant/trusty/current/trusty-server-cloudimg-amd64-vagrant-disk1.box" [3000, 5000, 2345, 15672, 5672, 15674, 27017, 28017, 9200, 9300, 11211, 55674, 61614, 55672, 5671, 61613].each do |p| config.vm.network :forwarded_port, guest: p, host: p end config.vm.network :private_network, ip: "192.168.56.20" config.vm.synced_folder ".", "/vagrant", :type => "nfs" config.vm.provider :virtualbox do |vb| vb.customize ["modifyvm", :id, "--memory", "2048"] vb.customize ["modifyvm", :id, "--cpus", "2"] end # Bootstrap to Docker config.vm.provision :shell, path: "script/vagrant/bootstrap", :privileged => true # Build docker containers config.vm.provision :shell, path: "script/vagrant/docker_build", :privileged => true # Start containers # config.vm.provision :shell, path: "script/vagrant/docker_start", :privileged => true end
Liman işçisi yükleyen Bootstrap dosyası şöyle görünür
#!/usr/bin/env bash echo 'vagrant ALL= (ALL:ALL) NOPASSWD: ALL' >> /etc/sudoers apt-get update -y apt-get install htop -y apt-get install linux-image-extra-`uname -r` -y apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 36A1D7869245C8950F966E92D8576A8BA88D21E9 echo deb http://get.docker.io/ubuntu docker main > /etc/apt/sources.list.d/docker.list apt-get update -y apt-get install lxc-docker -y apt-get install curl -y
Şimdi çalıştırmam gereken tüm hizmetleri alabilmem için buna benzeyen bir docker_start betiğim var
#!/bin/bash cd /vagrant echo Starting required service containers export HOST_NAME=192.168.56.20 # Start MongoDB docker run --name=mongodb --detach=true --publish=27017:27017 --publish=28017:28017 dockerfile/mongodb read -t5 -n1 -r -p "Waiting for mongodb to start..." key # Start rabbitmq docker run --name=rabbitmq --detach=true --publish=5671:5671 --publish=5672:5672 --publish=55672:55672 --publish=15672:15672 --publish=15674:15674 --publish=61613:61613 --env RABBITMQ_USER=guest --env RABBITMQ_PASS=guest rabbitmq read -t5 -n1 -r -p "Waiting for rabbitmq to start..." key # Start cache docker run --name=memcached --detach=true --publish=11211:11211 ehazlett/memcached read -t5 -n1 -r -p "Waiting for cache to start..." key # Start elasticsearch docker run --name=elasticsearch --detach=true --publish=9200:9200 --publish=9300:9300 dockerfile/elasticsearch read -t5 -n1 -r -p "Waiting for elasticsearch to start..." key echo "All services started"
Bu örnekte MongoDB, Elastisearch, RabbitMQ ve Memcached kullanıyorum
Liman işçisi olmayan bir Chef solo konfigürasyonu oldukça daha karmaşık olurdu.
Üretim ortamına geçtiğinizde son bir büyük artı kazanılır, geliştirme ortamını liman işçisi çalıştırmak için yeterli yapılandırmaya sahip oldukları için aynı olan bir ana bilgisayar altyapısına dönüştürürsünüz.
Eğer ilgileniyorsanız, web sitemdeki geliştirme ortamı hakkında daha ayrıntılı bir makalem var.
59
Vagrant-lxc , Vagrant'ı sağlamak için LXC kullanmanıza izin veren bir eklentidir. Varsayılan serseri VM'nin (VirtualBox) sahip olduğu tüm özelliklere sahip değildir, ancak size liman işçisi konteynerlerinden daha fazla esneklik sunmalıdır. Bağlantıda izlemeye değer yeteneklerini gösteren bir video var.
53
Vagrant ile şimdi bir sağlayıcı olarak Docker'a sahip olabilirsiniz. http://docs.vagrantup.com/v2/docker/ . Docker sağlayıcı, VirtualBox veya VMware yerine kullanılabilir.
Lütfen Vagrant ile provizyon yapmak için Docker'ı kullanabileceğinizi unutmayın. Bu, Docker'ı sağlayıcı olarak kullanmaktan çok farklı. http://docs.vagrantup.com/v2/provisioning/docker.html
Bu, Chef veya Puppet'i Docker ile değiştirebileceğiniz anlamına gelir . Sağlayıcı olarak Docker (VM) sağlayıcı olarak Chef'i sağlayıcı olarak kullanabilirsiniz. Veya sağlayıcı olarak VirtualBox'ı ve sağlayıcı olarak Docker'ı kullanabilirsiniz.
45
Her ikisinin de kullanılması uygulama teslim testinin önemli bir parçasıdır. Docker ile çalışmaya yeni başladım ve yazılımını oluşturma ve sağlamada oldukça karmaşık olan bir uygulama ekibi hakkında çok fazla düşünüyorum. Klasik bir Phoenix Projesi / Sürekli Teslimat durumu düşünün.
Düşünce böyle bir şey gider:
Bu, Mitchell'in Vagrant'ın Sürekli Teslimatta düşünen Farley / Humbles ile birlikte geliştirme için olduğu şeklindeki mantığının bir uzantısı gibi görünüyor. Eğer bir geliştirici olarak, entegrasyon testi ve uygulama teslimi konusunda geri bildirim döngüsünü küçültebilirsem, daha kaliteli ve daha iyi çalışma ortamları izleyecektir.
Bir geliştirici olarak sürekli olarak ve sürekli olarak VM'ye konteynerler teslim etmem ve uygulamayı daha bütünsel olarak test etmem, üretim bültenlerinin daha da basitleştirileceği anlamına geliyor.
Bu yüzden Vagrant'ın Docker'ın uygulama dağıtımı için elde edeceği harika sonuçlardan bazılarını kaldırarak kullanmanın bir yolu olarak geliştiğini görüyorum.
15
Kesinlikle kazanmak için Docker!
Bildiğiniz gibi Vagrant sanal makine yönetimi içindir, oysa Docker yazılım konteynırları yönetimi içindir. Farkın farkında değilseniz, işte: Bir yazılım kabı aynı makineyi ve çekirdeği diğer yazılım kabları ile paylaşabilir. Kapları kullanmak paradan tasarruf etmenizi sağlar, çünkü birden fazla işletim sistemi (çekirdek) için kaynakları boşa harcamazsınız, sunucuların her birini daha iyi bir izolasyon derecesiyle koruyabilirsiniz.
Tabii ki kendi tuzakları ve zorlukları ile ilgilenmek için yeni bir disiplin.
Gereksinimleriniz tek makine kaynakları sınırını aşıyorsa Docker Swarm'a gidin.
9
Asıl Oracle Java dergisinde Docker'ın Vagrant (ve Kukla) ile birlikte kullanımı hakkında gerçekten bilgilendirici bir makale var:
Sonuç
Docker'ın hafif kapları klasik VM'lere kıyasla daha hızlıdır ve geliştiriciler arasında ve CD ve DevOps girişimlerinin bir parçası olarak popüler hale gelmiştir. Amacınız izolasyon ise, Docker mükemmel bir seçimdir. Vagrant, ayrı ayrı VM'lerin yapılandırmalarını kodlamanın yanı sıra sağlama işlemlerini yapmanıza olanak sağlayan bir VM yöneticisidir. Bununla birlikte, nispeten büyük ek yükü olan VirtualBox'a (ya da başka bir VM yöneticisine) bağlı bir VM'dir. Çok büyük bir sabit disk sürücüsüne sahip olmanızı gerektirir, çok fazla RAM gerektirir ve performans yetersiz olabilir. Docker, çekirdek grupları ve ad alanı yalıtımı kullanarak LXC'yi kullanır. Bu, ev sahibi ile aynı çekirdeği ve aynı ile sistemini kullandığınız anlamına gelir. Vagrant, soyutlama açısından Docker'ın üstündeki bir seviyedir, bu yüzden gerçekten karşılaştırılamazlar. Kukla gibi konfigürasyon yönetimi araçları, hedef ortamların sağlanmasında yaygın olarak kullanılmaktadır. Mevcut Kukla tabanlı çözümleri yeniden kullanmak Docker ile kolaydır. Çözümünüzü de dilimleyebilirsiniz, böylece altyapı Kukla ile sağlanır; ara katman yazılımı, iş uygulamasının kendisi veya her ikisi de Docker ile sağlanır; ve Docker Vagrant tarafından sarılır. Bu araç yelpazesiyle, senaryonuz için en iyisini yapabilirsiniz.
DevOps'ta Docker kapları nasıl oluşturulur, kullanılır ve düzenlenir http://www.javamagazine.mozaicreader.com/JulyAug2015#&pageSet=34&page=0
8