vagrant docker
play

Vagrant Docker Gea-Suan Lin KKBOX Technologies Vagrant - PowerPoint PPT Presentation

Vagrant Docker Gea-Suan Lin KKBOX Technologies Vagrant VAGRANTFILE_API_VERSION = "2" Vagrant.configure(VAGRANTFILE_API_VERSION) do |config| config.vm.box = "hashicorp/precise64"


  1. ⽤甩 Vagrant 與 Docker 拯救世界 Gea-Suan Lin KKBOX Technologies

  2. Vagrant

  3. VAGRANTFILE_API_VERSION = "2" � Vagrant.configure(VAGRANTFILE_API_VERSION) do |config| config.vm.box = "hashicorp/precise64" � config.vm.define "db1" do |db| db.vm.hostname = "db1" db.vm.provision "shell", path: "db1.sh" db.vm.network "private_network", ip: "192.168.50.101" end � config.vm.define "db2" do |db| db.vm.hostname = "db2" db.vm.provision "shell", path: "db2.sh" db.vm.network "private_network", ip: "192.168.50.102" end end

  4. ⽤甩 Ruby 寫的

  5. 虛擬化管理⼯左具

  6. 包括了 ...

  7. Image

  8. Network

  9. Environment

  10. Script

  11. 早期只⽀攰援 VirtualBox

  12. 後來⽀攰援 KVM 、 VMware 等等⽅斺案

  13. 包括了今天要提到的 Docker

  14. 好處

  15. 可重複測試

  16. 每次環境相同

  17. 設定簡單

  18. Docker

  19. Linux 上輕量級的 容器管理⼯左具

  20. ( 微軟也打算要在 Windows 上實作 ) http://www.zdnet.com/article/docker-container-support- coming-to-microsofts-next-windows-server-release/

  21. Microservices

  22. 優點

  23. 啟動速度快

  24. 節省資源

  25. 缺點

  26. ⺫⽬盯前只有 Linux 平台

  27. 無法指定容器的 IP 位置 https://github.com/docker/docker/issues/6743

  28. Vagrant + Docker

  29. ⽤甩途

  30. 開發測試環境

  31. Continuous Integration

  32. 設定範例

  33. ENV["VAGRANT_DEFAULT_PROVIDER"] = "docker" VAGRANTFILE_API_VERSION = "2" � Vagrant.configure(VAGRANTFILE_API_VERSION) do |config| config.vm.define "db1" do |db| db.vm.provision "shell", path: "db1.sh" db.vm.synced_folder "shared/", "/srv/shared" db.vm.provider "docker" do |docker, override| docker.image = "npoggi/vagrant-docker" docker.has_ssh = true end end � config.vm.define "db2" do |db| db.vm.provision "shell", path: "db2.sh" db.vm.synced_folder "shared/", "/srv/shared" db.vm.provider "docker" do |docker| docker.image = "npoggi/vagrant-docker" docker.has_ssh = true end end end

  34. ENV["VAGRANT_DEFAULT_PROVIDER"] = "docker" VAGRANTFILE_API_VERSION = "2" � Vagrant.configure(VAGRANTFILE_API_VERSION) do |config| config.vm.define "db1" do |db| db.vm.provision "shell", path: "db1.sh" db.vm.synced_folder "shared/", "/srv/shared" db.vm.provider "docker" do |docker, override| docker.image = "npoggi/vagrant-docker" docker.has_ssh = true end end � config.vm.define "db2" do |db| db.vm.provision "shell", path: "db2.sh" db.vm.synced_folder "shared/", "/srv/shared" db.vm.provider "docker" do |docker| docker.image = "npoggi/vagrant-docker" docker.has_ssh = true end end end

  35. ENV["VAGRANT_DEFAULT_PROVIDER"] = "docker" VAGRANTFILE_API_VERSION = "2" � Vagrant.configure(VAGRANTFILE_API_VERSION) do |config| config.vm.define "db1" do |db| db.vm.provision "shell", path: "db1.sh" db.vm.synced_folder "shared/", "/srv/shared" db.vm.provider "docker" do |docker, override| docker.image = "npoggi/vagrant-docker" docker.has_ssh = true end end � config.vm.define "db2" do |db| db.vm.provision "shell", path: "db2.sh" db.vm.synced_folder "shared/", "/srv/shared" db.vm.provider "docker" do |docker| docker.image = "npoggi/vagrant-docker" docker.has_ssh = true end end end

  36. ENV["VAGRANT_DEFAULT_PROVIDER"] = "docker" VAGRANTFILE_API_VERSION = "2" � Vagrant.configure(VAGRANTFILE_API_VERSION) do |config| config.vm.define "db1" do |db| db.vm.provision "shell", path: "db1.sh" db.vm.synced_folder "shared/", "/srv/shared" db.vm.provider "docker" do |docker, override| docker.image = "npoggi/vagrant-docker" docker.has_ssh = true end end � config.vm.define "db2" do |db| db.vm.provision "shell", path: "db2.sh" db.vm.synced_folder "shared/", "/srv/shared" db.vm.provider "docker" do |docker| docker.image = "npoggi/vagrant-docker" docker.has_ssh = true end end end

  37. Summary

  38. We’re hiring recruit@kkbox.com

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend