网上乱七八糟的资料实在是太多了, 乱, 特别乱, 而看书呢, 我读了2本书, 一本叫做<<第一本 Docker 书>>, 另一本叫做<< Docker进阶与实战>> 在 服务发现这块讲的又不清不楚的, 坑死个人. 今天特意记录下, 并整理下来,以防自己哪天又忘了, 也给同在研究Docker 的朋友们一个安装教程.
我单位测试机一共四台, 各位可以起4个虚拟机对应, 假定分别是141,142,143,144. 都是 CentOS 6.x 系统.
首先升级141, 其它机器也是同样的方法.
访问elrepo.org, 按照网站上的提示一步步的安装public key.
rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org
然后141是 CentOS6.x, 所以选择安装CentOS 6.x 的版本
rpm -Uvh http://www.elrepo.org/elrepo-release-6-6.el6.elrepo.noarch.rpm
装好了后, 点击elrepo 网站最上面的Packages 菜单, 找到 kernel-lt
http://elrepo.org/tiki/kernel-lt
按照提示直接装最新版的 kernel long term 版本
yum --enablerepo=elrepo-kernel install kernel-lt
然后编辑/etc/grub.conf 文件, 找到 default=1, 改成 default=0, 然后重启 linux, 就搞定了!!!
其它服务器依照此方法分别都更新. 更新完了, 用下面的命令看是否内核正确调用了.
# uname -r
4.1.2-1.el6.elrepo.x86_64
访问 Docker 官网, 找到针对CentOS 的安装指示页面.
https://docs.docker.com/engine/installation/linux/centos/
安装官方的安装说明安装吧, 我就不为了显摆而复述了. 其它机器也是这样安装. 装好了请不要着急启动 docker deamon...
因为还有坑... 请执行下面的命令修改 Docker 的默认启动参数(这都是针对 CentOS 啊, 其它系统不熟悉, 各位自行摸索).
vi /etc/default/docker
添加这么一行
DOCKER_OPTS="-H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock"
然后你就可以启动Docker服务了.
service start docker
这就开始了, 因为有了docker,所以千万千万就不要老想着源代码安装了,那样太 low B 了, 恩. consul 的概念请阅读 consul 官网的资料(当然跟上面一样都是英文的).
https://www.consul.io/intro/getting-started/install.html
上面是原理, 看懂了就得了, 因为安装的话我们是用 Docker 来部署的, 恩, 经过本人各种尝试, 为了不让大家走坑, 请参考我的容器部署命令.
docker run -d --restart=always -p 8400:8400 -p 8500:8500 -p 8600:53/udp --name=consul -h node1 progrium/consul -server -bootstrap -ui-dir /ui
只部署了一台 Consul, 这样是相当的有风险的, 不过咱先不考虑实用性好伐? 先考虑能测试吧.
swarm的资料在 docker 官网上有给, 所以你可以先看看 docker 官网的介绍资料, 恩, 还是那句话, 你先看看, 部署的话不要用那个... 下面有讲.
https://docs.docker.com/swarm/overview/
恩, swarm 的比较知名的而且经过我实际测试的非常牛逼的docker管理系统 是 shipyard, 官网是
http://www.shipyard-project.com
看完shipyard 介绍请移步它的安装页面.
http://www.shipyard-project.com/docs/deploy/manual/
不要看着 Deploy 有个自动的就想去装自动那个啊, 自动那个是 etcd 不是 consul 的, consul 是 docker 官网推荐的, 阿里云啊, 新浪啊都是 consul 流派, 另外我看着名字好听也是倾向 consul 啊.
先在141服务器装 rethinkdb 数据库, 按照我给的命令来装哈, 要不然你会装不成功, 当然我这个是入门基础搭建教程, 不是原理教程, 先搭起来你再慢慢想呗?
docker run -d --restart=always --name shipyard-rethinkdb rethinkdb
然后下一步shipped 的 discovery 的就不要装了,还有 proxy 那个也不用装了.
咱们在141上继续装 swarm manager, 请参照下面的命令来安装, IP-OF-CONSUL-HOST替换为你的 consul 安装的 ip地址.
docker run -d -p 3375:3375 --restart=always --name shipyard-swarm-manager swarm:latest manage --host tcp://0.0.0.0:3375 consul://<IP-OF-CONSUL-HOST>:8500
然后在142,143,144上分别安装 swarm agent. ip-of-host是指你部署的机器的 ip 地址, 你在哪台机器上部署swarm agent容器你就设置哪个地址.
docker run -d --restart=always --name shipyard-swarm-agent swarm:latest join --addr <ip-of-host>:2375 consul://<IP-OF-CONSUL-HOST>:8500
然后回到141机器部署 shipyard.
docker run -d --restart=always --name shipyard-controller --link shipyard-rethinkdb:rethinkdb --link shipyard-swarm-manager:swarm -p 8080:8080 shipyard/shipyard:latest server -d tcp://swarm:3375
然后你就可以在浏览器访问141这台机器的8080端口, 就能看到 shipyard 的登录页面拉, 默认账户是 admin
, 密码shipyard
.
装个 nginx, 挂个域名, 再装个 registry 啥的都是后续的玩法, 前面咱们已经搭起来玩的环境了, 我后面再写服务发现(我得给大家个例子), 这些够大家玩了, have fun, 自己体会吧.
本篇文章是我原创, 未经本人允许, 请勿转载. 谢谢!!