[Docker] Docker Swarm於 Ubuntu 16.04 建置以及操作流程

此紀錄安裝以及建置過程:

1. 兩台以上的Ubuntu 16.04
  • manager 192.168.80.1
  • worker01 192.168.80.2
2. hosts文件設置
  • sudo vim /etc/hosts
新增以下配置至尾
  • 192.168.80.1 manager
  • 192.168.80.2 worker01
3. 安裝Docker-ce
於此步驟在所有主機上安裝Docker-ce Community Edition,使用以下命令安裝Docker-ce相關依賴套件
  • sudo apt install apt-transport-https software-properties-common ca-certificates -y
接著增加Docker金鑰和Docker-ce的repo加入至套件清單中
  • curl -fsSL https://download.docker.com/linux/debian/gpg | sudo apt-key add -
  • cd /etc/apt/sources.list.d
  • sudo vim docker.list
增加下列指令
  • deb https://download.docker.com/linux/ubuntu zesty edge
儲存並離開,接著以下指令
  • sudo apt update
  • sudo apt install docker-ce 
測試是否安裝成功
  • sudo docker run hello-world
驗證安裝成功後,啟動docker並設置系統開機時啟動
  • systemctl start docker
  • systemctl enable docker
接著建立普通用戶或是非root用戶,並將用戶新增至"docker"的組裡
  • useradd -m -s /bin/bash user01
  • sudo usermod -aG docker user01
登入user01用戶並驗證執行
  • sudo su - user01
  • docker run hello-world
接著創建Swarm的Cluster,首先在manager節點上初始化Swarm,並將work01節點增加進去Cluster
  • docker swarm init --advertise-addr 192.168.80.1
會看到manager-node已由manager節點產生,接著要將work01增加至manager底下,因此需要join-token,指令如下(token請參考自己所產生的)
  • docker swarm join --token SWMTKN-1-xxxxxxxxxxxxx-xxxxxxxx192.168.80.1:2377
  • docker node ls

創建服務並部署至Cluster,以Nginx為例
  • docker service create --name my-web --publish 8080:80 nginx:1.13-alpine
  • docker service ls
接著要為my-web複製兩個副本出來,就可以在manager和worker01去使用

  • docker service scale my-web=2
  • docker service ls

最後可以在網頁上輸入網址即可看到Nginx的畫面
  • 192.168.80.1:8080
  • 192.168.80.2:8080



留言

這個網誌中的熱門文章

[TensorFlow, C++, Visual Studio, Windows] TensorFlow C++ 如何編譯與解決BUG (How to build Tensorflow C++ API with Visual Studio and solve BUG)

[Ubuntu, Docker, Docker Swarm] Docker Swarm 建置 Jupyter Notebook 流程

[Docker Swarm] Docker Swarm 指令