Docker可视化界面(Consul+Shipyard+Swarm+Service Discover

前面一篇说到了Docker管理工具-Swarm部署记录,基于这个环境,下面记录下Docker可视化界面部署过程:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
1)下载相关镜像
  
manager-node节点(10.10.172.201)
[root@manager-node ~] # docker pull progrium/consul
[root@manager-node ~] # docker pull rethinkdb
[root@manager-node ~] # docker pull shipyard/shipyard
[root@manager-node ~] # docker pull gliderlabs/registrator
  
node1和node2节点上
[root@node1 ~] # docker pull progrium/consul
[root@node1 ~] # docker pull gliderlabs/registrator
  
2)启动consul
  
manager-node节点(10.10.172.201)
[root@manager-node ~] # docker run -d -p 8300:8300 -p 8301:8301 -p 8301:8301/udp -p 8302:8302 -p 8302:8302/udp -p 8400:8400 -p 8500:8500 -p 8600:53 -p 8600:53/udp -h manager-node --restart=always --name=consul progrium/consul -server -bootstrap -ui-dir=/ui -advertise 10.10.172.201 -client 0.0.0.0
  
----------------------------------------------------------------------------------------------
解释下各个参数:
-d         容器在后台运行, detached mode
--restart=always  重启模式, always 表示永远
-p 8400:8400      映射 consul的 rpc 端口8400
-p 8500:8500      映射到公共 IP 这样方便我们使用 UI 界面.
-p 8600:53 /udp     绑定udp 端口53(默认 DNS端口)在 docker0 bridge 地址上.
-advertise 10.10.172.201   服务对外公布的 IP, 这里特意设置为10.10.172.201, 否则 service 会显示为内部的容器的 IP 地址, 这样就访问不到了.
-client 0.0.0.0 consul    监听的地址.
  
删除consule命令(下面命令中的 "consul" 是启动consul命令中的--name后面的设置名)
# docker rm -f consul
----------------------------------------------------------------------------------------------
  
node1节点(10.10.172.202)
[root@node1 ~] # docker run -d --restart=always -p 8300:8300 -p 8301:8301 -p 8301:8301/udp -p 8302:8302 -p 8302:8302/udp -p 8400:8400 -p 8500:8500 -h node1 --name=consul progrium/consul -server  -join 10.10.172.201 -advertise 10.10.172.202 -client 0.0.0.0
  
node2节点(10.10.172.203)
[root@node2 ~] # docker run -d --restart=always -p 8300:8300 -p 8301:8301 -p 8301:8301/udp -p 8302:8302 -p 8302:8302/udp -p 8400:8400 -p 8500:8500 -h node2 --name=consul progrium/consul -server  -join 10.10.172.201 -advertise 10.10.172.203 -client 0.0.0.0
  
3)安装Swarm+Shipyard
  
manager-node节点(10.10.172.201)
[root@manager-node ~] # docker run -d --restart=always --name shipyard-rethinkdb rethinkdb
[root@manager-node ~] # docker run -d -p 3375:3375 --restart=always --name shipyard-swarm-manager swarm:latest manage --host tcp://0.0.0.0:3375 consul://10.10.172.201:8500
  
node1节点(10.10.172.202)
[root@node1 ~] # docker run -d --restart=always --name shipyard-swarm-agent swarm:latest join --addr 10.10.172.202:2375 consul://10.10.172.201:8500
  
node2节点(10.10.172.203)
[root@node2 ~] # docker run -d --restart=always --name shipyard-swarm-agent swarm:latest join --addr 10.10.172.203:2375 consul://10.10.172.201:8500
  
接着再回到manager-node节点上如下操作
[root@manager-node web] # 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
  
然后就可以在浏览器访问10.10.172.201这台机器的8080端口, 就能看到shipyard的登录页面拉, 默认账户是 admin, 密码shipyard.

Bluemix.png

blob.png

1
2
3
4
5
6
7
8
9
10
11
12
[root@manager-node ~] # docker service create --replicas 5 --network ngx_net --name my-test -p 80:80 nginx 
biuilenu8kmpptammif2i4k6w
[root@manager-node ~] # docker service ls
ID            NAME     REPLICAS  IMAGE  COMMAND
biuilenu8kmp  my- test   0 /5        nginx  
[root@manager-node ~] # docker service ps my-test
ID                         NAME       IMAGE  NODE          DESIRED STATE  CURRENT STATE             ERROR
4ir66nukuzg99vqkb5i2oc25v  my- test .1  nginx  manager-node  Running        Preparing 10 seconds ago  
66yrmx9sx1tjkunh5zbj25mks  my- test .2  nginx  node1         Running        Preparing 10 seconds ago  
0tkleq70qrpdybrqc46zshv4u  my- test .3  nginx  node2         Running        Preparing 9 seconds ago   
83azzwshy4vyr4fe28pq7s27t  my- test .4  nginx  node2         Running        Preparing 9 seconds ago   
11sthowpu7fwiqat8rhcswg7h  my- test .5  nginx  manager-node  Running        Preparing 10 seconds ago

11.jpg

Bluemix.png

1
2
3
4
5
6
7
8
9
10
11
12
13
14
4)registrator状态获取
  
manager-node节点(10.10.172.201)
[root@manager-node ~] # docker run -d --restart=always --name=registrator --net=host -v /var/run/docker.sock:/tmp/docker.sock gliderlabs/registrator -ip 10.10.172.201 consul://10.10.172.201:8500
  
node1节点(10.10.172.202)
[root@node1 ~] # docker run -d --restart=always --name=registrator --net=host -v /var/run/docker.sock:/tmp/docker.sock gliderlabs/registrator -ip 10.10.172.202 consul://10.10.172.202:8500
  
node2节点(10.10.172.203)
[root@node2 ~] # docker run -d --restart=always --name=registrator --net=host -v /var/run/docker.sock:/tmp/docker.sock gliderlabs/registrator -ip 10.10.172.203 consul://10.10.172.203:8500
  
参数解释:
- v  /var/run/docker .sock: /tmp/docker .sock     映射docker的socket到container中的对应位置, 这样 registration 就能监控有哪些服务启动了.
consul: //localhost :8500 consul 绑定到本地的 consul 接口上


打开http://10.10.172.201:8500,访问consul服务

11.jpg




本文转自 dengaosky 51CTO博客,原文链接:http://blog.51cto.com/dengaosky/2069892,如需转载请自行联系原作者

优秀的个人博客,低调大师

微信关注我们

原文链接:https://yq.aliyun.com/articles/517845

转载内容版权归作者及来源网站所有!

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。

相关文章

发表评论

资源下载

更多资源
Oracle Database,又名Oracle RDBMS

Oracle Database,又名Oracle RDBMS

Oracle Database,又名Oracle RDBMS,或简称Oracle。是甲骨文公司的一款关系数据库管理系统。它是在数据库领域一直处于领先地位的产品。可以说Oracle数据库系统是目前世界上流行的关系数据库管理系统,系统可移植性好、使用方便、功能强,适用于各类大、中、小、微机环境。它是一种高效率、可靠性好的、适应高吞吐量的数据库方案。

Eclipse(集成开发环境)

Eclipse(集成开发环境)

Eclipse 是一个开放源代码的、基于Java的可扩展开发平台。就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境。幸运的是,Eclipse 附带了一个标准的插件集,包括Java开发工具(Java Development Kit,JDK)。

Java Development Kit(Java开发工具)

Java Development Kit(Java开发工具)

JDK是 Java 语言的软件开发工具包,主要用于移动设备、嵌入式设备上的java应用程序。JDK是整个java开发的核心,它包含了JAVA的运行环境(JVM+Java系统类库)和JAVA工具。

Sublime Text 一个代码编辑器

Sublime Text 一个代码编辑器

Sublime Text具有漂亮的用户界面和强大的功能,例如代码缩略图,Python的插件,代码段等。还可自定义键绑定,菜单和工具栏。Sublime Text 的主要功能包括:拼写检查,书签,完整的 Python API , Goto 功能,即时项目切换,多选择,多窗口等等。Sublime Text 是一个跨平台的编辑器,同时支持Windows、Linux、Mac OS X等操作系统。