Pertanyaan Haruskah saya menggunakan Vagrant atau Docker untuk menciptakan lingkungan yang terisolasi? [Tutup]


Saya menggunakan Ubuntu untuk pengembangan dan penyebaran dan memiliki kebutuhan untuk menciptakan lingkungan yang terisolasi.

Saya mempertimbangkan baik Vagrant atau Docker untuk tujuan ini. Apa pro dan kontra, atau bagaimana solusi ini dibandingkan?


1886
2018-05-20 10:05


asal


Jawaban:


Jika tujuan Anda adalah isolasi, saya pikir Docker adalah apa yang Anda inginkan.

Vagrant adalah manajer mesin virtual. Ini memungkinkan Anda untuk membuat skrip konfigurasi mesin virtual serta ketentuan. Namun, itu masih mesin virtual tergantung pada VirtualBox (atau orang lain) dengan overhead besar. Ini mengharuskan Anda untuk memiliki file hard drive yang bisa sangat besar, dibutuhkan banyak ram, dan kinerja mungkin tidak terlalu bagus.

Docker di sisi lain menggunakan kernel cgroup dan namespacing via LXC. Ini berarti Anda menggunakan kernel yang sama dengan host dan sistem file yang sama. Anda dapat menggunakan Dockerfile dengan docker build perintah untuk menangani penyediaan dan konfigurasi penampung Anda. Anda memiliki contoh di docs.docker.com tentang cara membuat Dockerfile Anda; itu sangat intuitif.

Satu-satunya alasan Anda ingin menggunakan Vagrant adalah jika Anda perlu melakukan BSD, Windows atau pengembangan non-Linux lainnya di kotak Ubuntu Anda. Jika tidak, pergilah ke Docker.


1042
2018-05-26 16:46



Disclaimer: Saya menulis Vagrant! Tetapi karena saya menulis Vagrant, saya menghabiskan sebagian besar waktu saya hidup di dunia DevOps yang mencakup perangkat lunak seperti Docker. Saya bekerja dengan banyak perusahaan menggunakan Vagrant dan banyak menggunakan Docker, dan saya melihat bagaimana kedua interaksi tersebut.

Sebelum saya berbicara terlalu banyak, jawaban langsung: dalam skenario spesifik Anda (Anda bekerja sendiri, mengerjakan Linux, menggunakan Docker dalam produksi), Anda dapat tetap menggunakan Docker sendirian dan menyederhanakan berbagai hal. Dalam banyak skenario lain (saya diskusikan lebih lanjut), itu tidak mudah.

Tidak benar untuk membandingkan langsung Vagrant dengan Docker. Dalam beberapa skenario, mereka tumpang tindih, dan dalam sebagian besar, mereka tidak. Sebenarnya, perbandingan yang lebih tepat adalah Vagrant versus sesuatu seperti Boot2Docker (OS minimal yang dapat menjalankan Docker). Vagrant adalah tingkat di atas Docker dalam hal abstraksi, jadi itu bukan perbandingan yang adil dalam banyak kasus.

Vagrant meluncurkan hal-hal untuk menjalankan aplikasi / layanan untuk tujuan pengembangan. Ini bisa di VirtualBox, VMware. Ini bisa jauh seperti AWS, OpenStack. Di dalamnya, jika Anda menggunakan kontainer, Vagrant tidak peduli, dan merangkulnya: ia dapat secara otomatis memasang, menarik, membangun, dan menjalankan kontainer Docker, misalnya. Dengan Vagrant 1.6, Vagrant memiliki lingkungan pengembangan berbasis docker, dan mendukung penggunaan Docker dengan alur kerja yang sama seperti Vagrant di Linux, Mac, dan Windows. Vagrant tidak mencoba untuk mengganti Docker di sini, itu merangkul praktik Docker.

Docker secara khusus menjalankan kontainer Docker. Jika Anda membandingkan langsung dengan Vagrant: ini secara khusus lebih spesifik (hanya dapat menjalankan kontainer Docker), kurang fleksibel (membutuhkan Linux atau Linux host somewhere) solusi. Tentu saja jika Anda berbicara tentang produksi atau CI, tidak ada perbandingan dengan Vagrant! Vagrant tidak hidup di lingkungan ini, sehingga Docker harus digunakan.

Jika organisasi Anda hanya menjalankan kontainer Docker untuk semua proyek mereka dan hanya memiliki pengembang yang berjalan di Linux, maka oke, Docker pasti dapat bekerja untuk Anda!

Jika tidak, saya tidak melihat manfaat untuk mencoba menggunakan Docker sendirian, karena Anda kehilangan banyak apa yang ditawarkan oleh Vagrant, yang memiliki manfaat bisnis / produktivitas nyata:

  • Vagrant dapat meluncurkan VirtualBox, VMware, AWS, OpenStack, dll. Tidak masalah apa yang Anda butuhkan, Vagrant bisa meluncurkannya. Jika Anda menggunakan Docker, Vagrant dapat menginstal Docker pada salah satu dari ini sehingga Anda dapat menggunakannya untuk tujuan itu.

  • Vagrant adalah alur kerja tunggal untuk semua proyek Anda. Atau dengan kata lain, itu hanya satu hal yang orang harus belajar untuk menjalankan proyek apakah itu dalam wadah Docker atau tidak. Jika, misalnya, di masa depan, pesaing muncul untuk bersaing langsung dengan Docker, Vagrant akan dapat menjalankannya juga.

  • Vagrant berfungsi pada Windows (kembali ke XP), Mac (kembali ke 10.5), dan Linux (kembali ke kernel 2.6). Dalam ketiga kasus, alur kerjanya sama. Jika Anda menggunakan Docker, Vagrant dapat meluncurkan mesin (VM atau remote) yang dapat menjalankan Docker pada ketiga sistem ini.

  • Vagrant tahu cara mengonfigurasi beberapa hal lanjutan atau non-sepele seperti jaringan dan sinkronisasi folder. Misalnya: Vagrant tahu cara melampirkan IP statis ke mesin atau meneruskan port, dan konfigurasinya sama tidak peduli sistem apa yang Anda gunakan (VirtualBox, VMware, dll.) Untuk folder yang disinkronkan, Vagrant menyediakan beberapa mekanisme untuk mendapatkan lokal Anda file ke mesin remote (folder bersama VirtualBox, NFS, rsync, Samba [plugin], dll.). Jika Anda menggunakan Docker, bahkan Docker dengan VM tanpa Vagrant, Anda harus melakukannya secara manual atau mereka harus menciptakan kembali Vagrant dalam kasus ini.

  • Vagrant 1.6 memiliki dukungan kelas untuk lingkungan pengembangan berbasis docker. Ini tidak akan meluncurkan mesin virtual di Linux, dan secara otomatis akan meluncurkan mesin virtual pada Mac dan Windows. Hasil akhirnya adalah bahwa bekerja dengan Docker adalah seragam di semua platform, sementara Vagrant masih menangani detail yang menjemukan dari hal-hal seperti jaringan, folder yang disinkronkan, dll.

Untuk mengatasi argumen counter tertentu yang saya dengar mendukung penggunaan Docker, bukan Vagrant:

  • "Ini adalah bagian yang kurang bergerak" - Ya, bisa jadi, jika Anda menggunakan Docker secara eksklusif untuk setiap proyek. Bahkan kemudian, itu mengorbankan fleksibilitas untuk mengunci Docker. Jika Anda memutuskan untuk tidak menggunakan Docker untuk proyek apa pun, di masa lalu, sekarang, atau di masa mendatang, Anda akan memiliki lebih banyak bagian yang bergerak. Jika Anda telah menggunakan Vagrant, Anda memiliki satu bagian bergerak yang mendukung sisanya.

  • "Lebih cepat!" - Setelah Anda memiliki host yang dapat menjalankan kontainer Linux, Docker pasti lebih cepat menjalankan sebuah wadah daripada mesin virtual apa pun yang akan diluncurkan. Tetapi meluncurkan mesin virtual (atau mesin remote) adalah biaya satu kali. Sepanjang hari, sebagian besar pengguna Vagrant tidak pernah benar-benar menghancurkan VM mereka. Ini adalah optimasi yang aneh untuk lingkungan pengembangan. Dalam produksi, di mana Docker benar-benar bersinar, saya memahami kebutuhan untuk dengan cepat memutar / menurunkan kontainer.

Saya harap sekarang jelas untuk melihat bahwa itu sangat sulit, dan saya yakin tidak benar, untuk membandingkan Docker dengan Vagrant. Untuk lingkungan dev, Vagrant lebih abstrak, lebih umum. Docker (dan berbagai cara Anda dapat membuatnya berperilaku seperti Vagrant) adalah kasus penggunaan khusus Vagrant, mengabaikan segala sesuatu yang ditawarkan Vagrant.

Kesimpulannya: dalam kasus penggunaan yang sangat spesifik, Docker jelas merupakan pengganti yang mungkin untuk Vagrant. Dalam kebanyakan kasus penggunaan, itu tidak. Vagrant tidak menghalangi penggunaan Docker Anda; sebenarnya apa yang dapat dilakukannya untuk membuat pengalaman itu lebih lancar. Jika Anda menemukan ini tidak benar, saya senang mengambil saran untuk memperbaiki keadaan, karena tujuan Vagrant adalah bekerja sama dengan sistem apa pun.

Semoga ini membereskan semuanya!


2172
2018-01-23 16:55



Saya penulis Docker.

Jawaban singkatnya adalah jika Anda ingin mengelola mesin, Anda harus menggunakan Vagrant. Dan jika Anda ingin membangun dan menjalankan lingkungan aplikasi, Anda harus menggunakan Docker.

Vagrant adalah alat untuk mengelola mesin virtual. Docker adalah alat untuk membangun dan menyebarkan aplikasi dengan mengemasnya ke dalam kontainer yang ringan. Sebuah wadah dapat menyimpan hampir semua komponen perangkat lunak bersama dengan dependensinya (file yang dapat dieksekusi, pustaka, file konfigurasi, dll.), Dan menjalankannya dalam lingkungan runtime yang terjamin dan dapat diulang. Ini membuatnya sangat mudah untuk membangun aplikasi Anda sekali dan menerapkannya di mana saja - di laptop Anda untuk pengujian, kemudian di server yang berbeda untuk penyebaran langsung, dll.

Ini adalah kesalahpahaman umum bahwa Anda hanya dapat menggunakan Docker di Linux. Itu tidak benar; Anda juga dapat menginstal Docker di Mac, dan dukungan Windows sedang berlangsung. Ketika diinstal di Mac, Docker menggabungkan Linux VM kecil (25 MB pada disk!) Yang berfungsi sebagai pembungkus untuk wadah Anda. Setelah diinstal, ini benar-benar transparan; Anda dapat menggunakan baris perintah Docker dengan cara yang persis sama. Ini memberi Anda yang terbaik dari kedua dunia: Anda dapat menguji dan mengembangkan aplikasi Anda menggunakan kontainer, yang sangat ringan, mudah diuji dan mudah dipindahkan (lihat misalnya https://hub.docker.com untuk berbagi wadah yang dapat digunakan kembali dengan komunitas Docker), dan Anda tidak perlu khawatir tentang rincian seluk-beluk mengelola mesin virtual, yang hanya sarana untuk mencapai tujuan.

Secara teori itu mungkin untuk menggunakan Vagrant sebagai lapisan abstraksi untuk Docker. Saya menyarankan untuk menentang ini karena dua alasan:

  • Pertama, Vagrant bukanlah abstraksi yang baik untuk Docker. Vagrant dirancang untuk mengelola mesin virtual. Docker dirancang untuk mengelola runtime aplikasi. Ini berarti Docker, dengan desain, dapat berinteraksi dengan aplikasi dengan cara yang lebih kaya, dan memiliki lebih banyak informasi tentang runtime aplikasi. Primitif dalam Docker adalah proses, aliran log, variabel lingkungan, dan tautan jaringan antar komponen. Primitif di Vagrant adalah mesin, perangkat blok, dan kunci ssh. Vagrant hanya duduk lebih rendah di tumpukan, dan satu-satunya cara itu dapat berinteraksi dengan wadah adalah dengan berpura-pura itu hanyalah jenis mesin lain, yang dapat Anda "boot" dan "masuk ke". Jadi, tentu saja, Anda dapat mengetik "gelandangan" dengan plugin Docker dan sesuatu yang cantik akan terjadi. Apakah ini merupakan pengganti untuk sepenuhnya dari apa yang dapat dilakukan Docker? Coba Docker asli selama beberapa hari dan lihat sendiri :)

  • Kedua, argumen lock-in. "Jika Anda menggunakan Vagrant sebagai abstraksi, Anda tidak akan terkunci ke Docker!". Dari sudut pandang Vagrant, yang dirancang untuk mengelola mesin, ini masuk akal: bukan wadah hanya jenis mesin lain? Sama seperti Amazon EC2 dan VMware, kita harus berhati-hati untuk tidak mengikat alat penyediaan kami ke vendor tertentu! Ini akan membuat kunci-dalam - lebih baik untuk abstrak semuanya dengan Vagrant. Kecuali ini merindukan titik Docker sepenuhnya. Docker tidak menyediakan mesin; itu membungkus aplikasi Anda dalam runtime portabel ringan yang dapat dijatuhkan di mana saja.

Apa waktu proses yang Anda pilih untuk aplikasi Anda tidak ada hubungannya dengan bagaimana Anda menyediakan mesin Anda! Sebagai contoh, ini cukup sering untuk menyebarkan aplikasi ke mesin yang disediakan oleh orang lain (misalnya contoh EC2 yang digunakan oleh administrator sistem Anda, mungkin menggunakan Vagrant), atau mesin telanjang yang tidak dapat disediakan oleh Vagrant sama sekali. Sebaliknya, Anda dapat menggunakan Vagrant untuk menyediakan mesin yang tidak ada hubungannya dengan mengembangkan aplikasi Anda - misalnya kotak Windows IIS yang siap digunakan atau sesuatu. Atau Anda dapat menggunakan Vagrant untuk menyediakan mesin untuk proyek yang tidak menggunakan Docker - mungkin mereka menggunakan kombinasi rubygems dan rvm untuk manajemen dependensi dan sandboxing misalnya.

Singkatnya: Vagrant adalah untuk mengelola mesin, dan Docker adalah untuk membangun dan menjalankan lingkungan aplikasi.


1281
2018-03-13 06:16



Saya memberi pengantar jawaban saya dengan mengakui bahwa saya tidak memiliki pengalaman dengan Docker, selain sebagai pengamat yang rajin tentang apa yang terlihat sebagai solusi yang benar-benar rapi yang mendapatkan banyak daya tarik.

Saya memiliki jumlah pengalaman yang layak dengan Vagrant dan sangat merekomendasikannya. Ini tentu saja solusi yang lebih berat dalam hal itu menjadi berbasis VM bukan berbasis LXC. Namun, saya telah menemukan laptop yang layak (8 GB RAM, i5 / i7 CPU) tidak mengalami kesulitan menjalankan VM menggunakan Vagrant / VirtualBox bersama perkakas pengembangan.

Salah satu hal yang sangat hebat dengan Vagrant adalah integrasi dengan Wayang/Koki/ skrip shell untuk mengotomatisasi konfigurasi. Jika Anda menggunakan salah satu opsi ini untuk mengonfigurasi lingkungan produksi Anda, Anda dapat membuat lingkungan pengembangan yang sedekat mungkin dengan yang akan Anda dapatkan, dan ini persis seperti yang Anda inginkan.

Hal hebat lainnya dengan Vagrant adalah Anda dapat membuat versi Vagrantfile Anda bersama dengan kode aplikasi Anda. Ini berarti bahwa semua orang di tim Anda dapat membagikan file ini dan Anda dijamin bahwa semua orang bekerja dengan konfigurasi lingkungan yang sama.

Menariknya, Vagrant dan Docker sebenarnya bisa gratis. Vagrant dapat diperluas untuk mendukung penyedia virtualisasi yang berbeda, dan mungkin saja Docker adalah salah satu penyedia yang mendapat dukungan dalam waktu dekat. Lihat https://github.com/dotcloud/docker/issues/404 untuk diskusi terkini tentang topik ini.


72
2018-06-25 21:33



Mereka sangat komplementer.

Saya telah menggunakan kombinasi VirtualBox, Vagrant, dan Docker untuk semua proyek saya selama beberapa bulan dan sangat merasakan manfaat berikut ini.

Di Vagrant, Anda benar-benar dapat menghapus semua ketentuan Chef solo dan semua yang Anda perlukan untuk file gelandangan Anda adalah menyiapkan mesin yang menjalankan skrip shell kecil yang menginstal docker. Ini berarti bahwa Vagrantfiles saya untuk setiap proyek hampir identik dan sangat sederhana.

Berikut ini tipikal 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

File Bootstrap yang menginstal docker tampak seperti ini

#!/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

Sekarang untuk mendapatkan semua layanan yang perlu saya jalankan, saya memiliki skrip docker_start yang terlihat seperti ini

#!/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"

Dalam contoh ini saya menjalankan MongoDB, Elastisearch, RabbitMQ dan Memcached

Konfigurasi solo Chef non-docker akan jauh lebih rumit.

A plus besar terakhir diperoleh ketika Anda pindah ke produksi, menerjemahkan lingkungan pengembangan ke infrastruktur tuan rumah yang semuanya sama karena mereka hanya memiliki cukup konfigurasi untuk menjalankan buruh pelabuhan berarti sangat sedikit pekerjaan memang.

Jika Anda tertarik, saya memiliki artikel yang lebih rinci tentang lingkungan pengembangan di situs web saya sendiri di

Menerapkan A Vagrant / Docker Development Environment


51
2017-08-20 20:42



Vagrant-lxc adalah plugin untuk Vagrant yang memungkinkan Anda menggunakan LXC untuk menyediakan Vagrant. Itu tidak memiliki semua fitur yang VM gelandangan default (VirtualBox) memiliki tetapi harus memungkinkan Anda lebih banyak fleksibilitas daripada kontainer buruh pelabuhan. Ada video di tautan yang menunjukkan kemampuannya yang layak untuk ditonton.


47
2017-08-01 18:44



Dengan Vagrant sekarang Anda dapat memiliki Docker sebagai penyedia. http://docs.vagrantup.com/v2/docker/. Penyedia Docker dapat digunakan sebagai pengganti VirtualBox atau VMware.

Harap dicatat bahwa Anda juga dapat menggunakan Docker untuk penyediaan dengan Vagrant. Ini sangat berbeda dari menggunakan Docker sebagai penyedia. http://docs.vagrantup.com/v2/provisioning/docker.html

Ini berarti Anda dapat mengganti Koki atau Wayang dengan Docker. Anda dapat menggunakan kombinasi seperti Docker sebagai penyedia (VM) dengan Chef sebagai provisioner. Atau Anda dapat menggunakan VirtualBox sebagai penyedia dan Docker sebagai penyedia.


41
2018-05-30 16:10



Penggunaan keduanya merupakan bagian penting dari pengujian pengiriman aplikasi. Saya baru mulai terlibat dengan Docker dan berpikir keras tentang tim aplikasi yang memiliki kompleksitas yang luar biasa dalam membangun dan mengirimkan perangkat lunaknya. Pikirkan tentang proyek Phoenix Project / Continuous Delivery yang klasik.

Pemikiran berjalan seperti ini:

  • Ambil komponen aplikasi Java / Go dan buat sebagai wadah (perhatikan, tidak yakin apakah aplikasi harus dibangun dalam wadah atau dibangun kemudian dipasang ke penampung)
  • Kirim kontainer ke Vagrant VM.
  • Ulangi ini untuk semua komponen aplikasi.
  • Iterasi pada komponen (s) untuk kode melawan.
  • Terus menguji mekanisme pengiriman ke VM (s) yang dikelola oleh Vagrant
  • Tidur nyenyak ketika sudah waktunya untuk menyebarkan wadah, pengujian integrasi itu terjadi secara jauh lebih berkelanjutan daripada sebelum Docker.

Ini tampaknya merupakan perpanjangan logis dari pernyataan Mitchell bahwa Vagrant adalah untuk pengembangan yang dikombinasikan dengan pemikiran Farley / Humbles dalam Continuous Delivery. Jika saya, sebagai pengembang, dapat mengecilkan putaran umpan balik pada pengujian integrasi dan pengiriman aplikasi, kualitas yang lebih tinggi dan lingkungan kerja yang lebih baik akan mengikuti.

Fakta bahwa sebagai pengembang saya secara terus-menerus dan konsisten mengirimkan kontainer ke VM dan menguji aplikasi secara lebih menyeluruh berarti bahwa rilis produksi akan lebih disederhanakan.

Jadi saya melihat Vagrant berevolusi sebagai cara memanfaatkan beberapa konsekuensi mengagumkan yang akan dimiliki Docker untuk penyebaran aplikasi.


11
2018-06-20 00:56



Ada artikel yang sangat informatif di majalah Java Oracle yang sebenarnya tentang penggunaan Docker dalam kombinasi dengan Vagrant (dan Wayang):

Kesimpulan

Wadah ringan Docker lebih cepat dibandingkan dengan VM klasik   dan telah menjadi populer di kalangan pengembang dan sebagai bagian dari CD dan DevOps   inisiatif. Jika tujuan Anda adalah isolasi, Docker adalah pilihan yang sangat baik.   Vagrant adalah manajer VM yang memungkinkan Anda melakukan konfigurasi skrip   VMs individu serta melakukan provisioning. Namun, itu sill a   VM bergantung pada VirtualBox (atau manajer VM lain) dengan relatif   overhead besar. Ini mengharuskan Anda memiliki idle hard drive yang dapat   besar, dibutuhkan banyak RAM, dan kinerja dapat kurang optimal. Buruh pelabuhan   menggunakan kernel cgroup dan isolasi namespace melalui LXC. Ini artinya itu   Anda menggunakan kernel yang sama dengan host dan sistem ile yang sama.   Vagrant adalah level di atas Docker dalam hal abstraksi, jadi mereka   tidak benar-benar sebanding. Alat manajemen konfigurasi seperti Wayang adalah   banyak digunakan untuk menyediakan lingkungan target. Menggunakan kembali yang ada   Solusi berbasis boneka mudah dengan Docker. Anda juga bisa memotongnya   solusi, sehingga infrastruktur disediakan dengan Wayang; itu   middleware, aplikasi bisnis itu sendiri, atau keduanya disediakan   dengan Docker; dan Docker dibungkus oleh Vagrant. Dengan kisaran ini   alat, Anda dapat melakukan apa yang terbaik untuk skenario Anda.

Cara membangun, menggunakan, dan mengatur wadah Docker di DevOps http://www.javamagazine.mozaicreader.com/JulyAug2015#&pageSet=34&page=0


5
2017-08-20 13:04



Jelas Docker untuk menang!

Seperti yang Anda ketahui Vagrant adalah untuk manajemen mesin virtual sedangkan Docker adalah untuk manajemen wadah perangkat lunak. Jika Anda tidak menyadari perbedaannya, di sini adalah: Wadah perangkat lunak dapat berbagi mesin dan kernel yang sama dengan wadah perangkat lunak lainnya. Menggunakan kontainer, Anda menghemat uang karena Anda tidak membuang-buang sumber daya pada beberapa sistem operasi (kernel), Anda dapat mengemas lebih banyak perangkat lunak per server dengan tingkat isolasi yang baik.

Tentu saja adalah disiplin baru untuk peduli dengan pitfal dan tantangannya sendiri.

Pergi untuk Docker Swarm jika kebutuhan Anda melintasi batas sumber daya mesin tunggal.


5
2018-03-24 14:40