1. 程式人生 > >『中級篇』docker-swarm創建一個多節點集群(43)

『中級篇』docker-swarm創建一個多節點集群(43)

fine containe 創建 lock tis -cp -a lang virt

>原創文章,歡迎轉載。轉載請註明:轉載自IT人故事會,謝謝!
>原文鏈接地址:『中級篇』docker-swarm創建一個多節點集群(43)

docker Swarm是Docker官方提供的一款集群管理工具,其主要作用是把若幹臺Docker主機抽象為一個整體,並且通過一個入口統一管理這些Docker主機上的各種Docker資源。源碼地址:https://github.com/limingios/docker中的No.5

創建3臺虛擬機

還是通過vagrant + virtualbox的方式來創建

  • 源碼文件夾

技術分享圖片

  • 查看創建虛擬機的源碼
# -*- mode: ruby -*-
# vi: set ft=ruby :

Vagrant.require_version ">= 1.6.0"

boxes = [
    {
        :name => "swarm-manager",
        :mem => "1024",
        :cpu => "1"
    },
    {
        :name => "swarm-worker1",
        :mem => "1024",
        :cpu => "1"
    },
    {
        :name => "swarm-worker2",
        :mem => "1024",
        :cpu => "1"
    }
]

Vagrant.configure(2) do |config|

  config.vm.box = "centos/7"

  boxes.each do |opts|
      config.vm.define opts[:name] do |config|
        config.vm.hostname = opts[:name]
        config.vm.provider "vmware_fusion" do |v|
          v.vmx["memsize"] = opts[:mem]
          v.vmx["numvcpus"] = opts[:cpu]
        end

        config.vm.provider "virtualbox" do |v|
          v.customize ["modifyvm", :id, "--memory", opts[:mem]]
          v.customize ["modifyvm", :id, "--cpus", opts[:cpu]]
        end

        config.vm.network :private_network, type: "dhcp"
      end
  end

  config.vm.synced_folder "./labs", "/home/vagrant/labs"
  config.vm.provision "shell", privileged: true, path: "./setup.sh"

end

技術分享圖片

技術分享圖片

技術分享圖片

技術分享圖片

用SecureCRT連接著3個虛擬機
  • 查看每個虛擬機的ip地址
    
    vagrant ssh swarm-manager
    #swarm-manager的ip是172.28.128.3
    ip a
![](https://upload-images.jianshu.io/upload_images/11223715-ad3619672ae9886b.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

![](https://upload-images.jianshu.io/upload_images/11223715-e7e7b767549fdd32.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

``` bash
vagrant ssh swarm-worker1
#swarm-worker1的ip是172.28.128.4
ip a

技術分享圖片

技術分享圖片

vagrant ssh swarm-worker2
#swarm-worker2的ip是172.28.128.5
ip a

技術分享圖片

技術分享圖片

技術分享圖片

創建docker-swarm集群
  1. swarm-manager 建立manager
    sudo docker swarm init --help
    sudo docker swarm init --advertise-addr=172.28.128.3

技術分享圖片

技術分享圖片

  1. swarm-worker1 和 swam-worker2 連接manager
    sudo service docker restart
    docker swarm join --token SWMTKN-1-1vafvfucsur6iqd6ba5i2njty6djvzxnhwefsmar4sivcg8isi-dgm1aigtcu1rtotfc8y43j17m 172.28.128.3:2377

技術分享圖片

  1. swarm-manager 查看連接狀態
    docker node ls

    技術分享圖片

PS:這樣基本上通過docker-swarm完成集群管理。


往期精彩
  1. docker導學(一)
  2. 容器的技術概述(二)
  3. docker的魅力初體驗-5分鐘安裝wordpress不走彎路(三)
  4. docker官網介紹(四)
  5. 如何在mac上安裝docker(五)
  6. 如何在window上安裝docker(六)
  7. 如何在mac上通過vagrant安裝虛擬機(七)
  8. 如何在window上通過vagrant安裝虛擬機(八)
  9. docker-Machine的本地使用(九)
  10. docker-Machine的本地使用(十)
  11. 在linux/mac下通過Docker-Machine在阿裏雲上的使用(11)
  12. docker架構和底層技術(12)
  13. docker Image概述(13)
  14. 手動建立一個base Image(14)
  15. 什麽是Container(15)
  16. 構建自己的Docker鏡像(16)
  17. Dockerfile詳解(17)
  18. 鏡像的發布(18)
  19. Dockerfile實戰(19)
  20. 容器的操作(20)
  21. Dockerfile實戰CMD和ENTRTYPOINT的配合(21)
  22. 容器的資源限制(22)
  23. docker網絡(23)
  24. docker學習必會網絡基礎(24)
  25. Linux網絡命名空間(25)
  26. Docker Bridge詳解(26)
  27. 容器之間的Link(27)
  28. 容器的端口映射(28)
  29. 容器網絡之host和none(29)
  30. 多容器復雜應用的部署(30)
  31. overlay網絡和etcd實現多機的容器通信(31)
  32. docker的數據持久化存儲和數據共享(32)
  33. windows下vagrant 通過SecureCRT連接centos7(33)
  34. 數據持久化之Data Volume(34)
  35. 數據持久化之bind Mounting(35)
  36. docker 使用bind Mounting實戰(36)
  37. docker容器安裝wordpress(37)
  38. docker Compose到底是什麽(38)
  39. Docker Compose的安裝和基本使用(39)
  40. Docker 水平擴展和負載均衡(40)
  41. Docker compose 部署一個復雜的應用(41)
  42. 容器編排Docker Swarm介紹(42)
    技術分享圖片

『中級篇』docker-swarm創建一個多節點集群(43)