to make standard containers available everywhere
参考
http://dockerpool.com/static/books/docker_practice/swarm/usage.html
第一步,安装swarm
# docker pull swarm
验证
# docker run --rm swarm -v
出现
swarm version 0.4.0 (d647d82)
成功!
如果出现不成功,就一直重复执行命令,甚至可以reboot系统,暴力一些。如果还不行,我采取的方法是在已经有swarm镜像的机器上使用命令docker save 和 docker load对镜像进行tar打包然后传到要安装swarm的机器上进行load,反正一直折腾吧,直到ok为止,O(∩_∩)O哈哈~
ubuntu install docker 通过Docker源安装最新版本
# apt-get install apt-transport-https
# apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 36A1D7869245C8950F966E92D8576A8BA88D21E9
# bash -c "echo deb https://get.docker.io/ubuntu docker main > /etc/apt/sources.list.d/docker.list"
# apt-get update
# apt-get install lxc-docker
On swarm master node (123 REHL docker 1.8.2)
<REHL>
# vim /usr/lib/systemd/system/docker.service
<Enter vim>
#ExecStart=/usr/bin/docker daemon -H fd://
# for swarm using
ExecStart=/usr/bin/docker -d -H 0.0.0.0:2375 -H unix:///var/run/docker.sock
<Exit vim>
# systemctl daemon-reload
# service docker restart
On swarm other nodes (110 Ubuntu docker 1.7.1, 64 Ubuntu docker 1.8.1)
<Ubuntu>
DOCKER_OPTS="-H 0.0.0.0:2375 -H unix:///var/run/docker.sock" (vim /etc/default/docker)
# service docker restart
Notes:
1) docker -d 启动一个后台daemon进程
2) 运行Docker守护进程时,可以用-H标志调整守护进程绑定监听接口的方式。
3) 关于/var/run/docker.sock
当Docker软件包安装完毕后,默认会立即启动Docker守护进程。守护进程监听/var/run/docker.sock“这个Unix套接字文件,来获取来自客户端的Docker请求
如果出现/var/run/docker.sock的报错,解决方法是尝试用root用户身份去操作
Docker 集群管理需要使用服务发现功能。
这里我们不选择DockerHub 提供的服务发现功能(因为经过实践检验,会出现问题,在join时会出现fatal的错误导致无法使用DockerHub提供的服务发现),而是使用本地文件。
第一步:
On 123(swarm manager),把集群中各个机器的ip写入到管理节点上的一个文件中,示例如下
# echo ip1:2375 >> cluster
# echo ip2:2375 >> cluster
# echo ip3:2375 >> cluster
# cat cluster
ip1:2375
ip2:2375
ip3:2375
第二步:
# docker run -d -p 2376:2375 -v $(pwd)/cluster:/tmp/cluster swarm manage file:///tmp/cluster
出现
c36af6dd8b0279f4c5c2f49570563f2d61c1a5e23cd630e81d91b444039c9b00
docker ps后发现
CONTAINER ID IMAGE COMMAND
CREATED STATUS PORTS NAMES
c36af6dd8b02 swarm “/swarm manage file:/” 37
seconds ago Up 36 seconds 0.0.0.0:2376->2375/tcp
mad_yalow
可以看到,此时整个集群已经启动成功。
接下来的就可以在任何一台安装了docker的机器上面通过命令使用集群,如在64机器上运行
# docker -H swarm_manager_ip:2376 info
就会显示集群中的机器信息。
版权声明:本文为博主原创文章,未经博主允许不得转载。
原文:http://blog.csdn.net/bluecloudmatrix/article/details/49490339