在ubuntu上使用swarm搭建docker集群

版权声明:本文系作者原创。未经许可,不得转载。

操作系统: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不相同。

一、安装docker
1、添加gpg公钥
$ sudo apt-key adv --keyserver hkp://p80.pool.sks-keyservers.net:80 --recv-keys F76221572C52609D
2、添加docker源
$ sudo sh -c "echo deb https://apt.dockerproject.org/repo ubuntu-xenial main > /etc/apt/sources.list.d/docker.list"
3、更新并安装
$sudo apt update
$sudo apt install docker-engine
4、查看docker版本,检查是否正确安装
$docker --version
显示如下信息,说明安装正确。版本号会有不同。
Docker version 1.11.1, build 5604cbe
5、配置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.sock

二、安装swarm
1、拉取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:latest

三、搭建集群
1、创建集群token
在任何一台机器上执行,获取全球唯一的 token,作为集群唯一标识。
$docker run --rm swarm create
ae44ab899a758522cf267c0e7904f4ab
记住这个token。
2、加入集群
在节点机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
3、启动管理机
在管理机上执行:
$docker run -d -p 2376:2375 swarm manage token://ae44ab899a758522cf267c0e7904f4ab
4、确认集群搭建是否成功
在管理机上执行:
$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 support

解读:有三个节点。列出了每个节点名、配置信息等。
至此,在ubuntu16.04上,通过swarm搭建docker集群完成!

四、参考资料
1、https://docs.docker.com/engine/admin/systemd/
2、https://yeasy.gitbooks.io/docker_practice/content/swarm/usage.html
3、https://blog.docker.com/2015/07/new-apt-and-yum-repos/

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值