在ubuntu上使用swarm搭建docker集羣

版權聲明:本文系做者原創。未經許可,不得轉載。html

操做系統:Ubuntu 16.04 LTS
swarm manager: 192.168.2.46 swarm集羣的管理機, 簡稱管理機
swarm node1: 192.168.2.47 swarm集羣的節點機1, 簡稱節點機1
swarm node2: 192.168.2.48 swarm集羣的節點機2, 簡稱節點機2
swarm node3: 192.168.2.49 swarm集羣的節點機3, 簡稱節點機3
注意: 必須確保節點機的hostname不相同。node

1、安裝docker
一、添加gpg公鑰
$ sudo apt-key adv --keyserver hkp://p80.pool.sks-keyservers.net:80 --recv-keys F76221572C52609D
二、添加docker源
$ sudo sh -c "echo deb https://apt.dockerproject.org/repo ubuntu-xenial main > /etc/apt/sources.list.d/docker.list"
三、更新並安裝
$sudo apt update
$sudo apt install docker-engine
四、查看docker版本,檢查是否正確安裝
$docker --version
顯示以下信息,說明安裝正確。版本號會有不一樣。
Docker version 1.11.1, build 5604cbe
五、配置docker並重啓
把集羣中全部的節點的 docker daemon 的監聽方式更改成0.0.0.0:2375。
$sudo vim /lib/systemd/system/docker.service
修改ExecStart項爲以下:
ExecStart=/usr/bin/docker daemon -H 0.0.0.0:2375 -H unix:///var/run/docker.sock
從新載入配置,使修改生效。
$sudo systemctl daemon-reload
重啓docker。
$sudo systemctl restart docker
查看是否修改爲功。
$ps aux | grep "docker"
出現以下信息,代表修改爲功。
root 2854 2.8 0.1 561364 38104 ? Ssl 19:15 0:00 /usr/bin/docker daemon -H 0.0.0.0:2375 -H unix:///var/run/docker.socklinux

2、安裝swarm
一、拉取swarm鏡像
$ docker pull swarm
顯示以下信息,說明拉取成功。(查看最後一行)
Using default tag: latest
latest: Pulling from library/swarm
dd2ca02feeef: Pull complete
8e8ea52d4475: Pull complete
397cd9ffad59: Pull complete
a3ed95caeb02: Pull complete
Digest: sha256:69363272443f4080e0623e78ced41bf38273535ee7f422b26bbc555db2b5d4a4
Status: Downloaded newer image for swarm:latestgit

3、搭建集羣
一、建立集羣token
在任何一臺機器上執行,獲取全球惟一的 token,做爲集羣惟一標識。
$docker run --rm swarm create
ae44ab899a758522cf267c0e7904f4ab
記住這個token。
二、加入集羣
在節點機1上執行:
$docker run -d swarm join -addr=192.168.2.47:2375 token://ae44ab899a758522cf267c0e7904f4ab
在節點機2上執行:
$docker run -d swarm join -addr=192.168.2.48:2375 token://ae44ab899a758522cf267c0e7904f4ab
在節點機3上執行:
$docker run -d swarm join -addr=192.168.2.49:2375 token://ae44ab899a758522cf267c0e7904f4ab
三、啓動管理機
在管理機上執行:
$docker run -d -p 2376:2375 swarm manage token://ae44ab899a758522cf267c0e7904f4ab
四、確認集羣搭建是否成功
在管理機上執行:
$docker ps -a
顯示以下信息,代表管理機啓動成功。
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
2f34818bb03f swarm "/swarm manage token:" 2 minutes ago Up 2 minutes 0.0.0.0:2376->2375/tcp backstabbing_goldberg
在節點機上執行:
$docker ps -a
顯示以下信息,代表節點機啓動成功。
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
d0104264c0f3 swarm "/swarm join -addr=19" 5 minutes ago Up 5 minutes 2375/tcp jovial_lumiere
查看集羣全部節點信息。在任何一臺機器上執行:
$docker run --rm swarm list token://ae44ab899a758522cf267c0e7904f4ab
顯示以下信息,代表集羣建立成功。
192.168.2.49:2375
192.168.2.48:2375
192.168.2.47:2375
查看集羣詳細信息。在任何一臺機器上執行:
$docker -H 192.168.2.46:2376 info
顯示以下信息:
Containers: 3
Running: 3
Paused: 0
Stopped: 0
Images: 3
Server Version: swarm/1.2.1
Role: primary
Strategy: spread
Filters: health, port, containerslots, dependency, affinity, constraint
Nodes: 3
docker006: 192.168.2.47:2375
└ ID: 2LQB:JOJN:NOJ6:2EDA:WEZL:RZZ7:J4Z5:IWKD:HAO4:PHIO:SS67:6N6M
└ Status: Healthy
└ Containers: 1
└ Reserved CPUs: 0 / 4
└ Reserved Memory: 0 B / 20.59 GiB
└ Labels: executiondriver=, kernelversion=4.4.0-21-generic, operatingsystem=Ubuntu 16.04 LTS, storagedriver=aufs
└ Error: (none)
└ UpdatedAt: 2016-05-06T11:28:06Z
└ ServerVersion: 1.11.1
docker007: 192.168.2.48:2375
└ ID: FDND:TTAN:2LPV:D2EW:R4AQ:7VWV:CLBX:7MWH:2553:XCK7:Z26X:T4JK
└ Status: Healthy
└ Containers: 1
└ Reserved CPUs: 0 / 4
└ Reserved Memory: 0 B / 20.59 GiB
└ Labels: executiondriver=, kernelversion=4.4.0-21-generic, operatingsystem=Ubuntu 16.04 LTS, storagedriver=aufs
└ Error: (none)
└ UpdatedAt: 2016-05-06T11:28:20Z
└ ServerVersion: 1.11.1
docker008: 192.168.2.49:2375
└ ID: HRVI:Y7NS:ZKAX:3EP3:REQR:YKTM:BDYD:76OK:WMCI:MCX7:4C3C:64JA
└ Status: Healthy
└ Containers: 1
└ Reserved CPUs: 0 / 4
└ Reserved Memory: 0 B / 20.59 GiB
└ Labels: executiondriver=, kernelversion=4.4.0-21-generic, operatingsystem=Ubuntu 16.04 LTS, storagedriver=aufs
└ Error: (none)
└ UpdatedAt: 2016-05-06T11:28:22Z
└ ServerVersion: 1.11.1
Plugins:
Volume:
Network:
Kernel Version: 4.4.0-21-generic
Operating System: linux
Architecture: amd64
CPUs: 12
Total Memory: 61.77 GiB
Name: 2f34818bb03f
Docker Root Dir:
Debug mode (client): false
Debug mode (server): false
WARNING: No kernel memory limit supportdocker

解讀:有三個節點。列出了每一個節點名、配置信息等。
至此,在ubuntu16.04上,經過swarm搭建docker集羣完成! ubuntu

4、參考資料
一、https://docs.docker.com/engine/admin/systemd/
二、https://yeasy.gitbooks.io/docker_practice/content/swarm/usage.html
三、https://blog.docker.com/2015/07/new-apt-and-yum-repos/vim

相關文章
相關標籤/搜索