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,如需转载请自行联系原作者

目录
打赏
0
0
0
0
265
分享
相关文章
找不到类似 Docker Desktop 的 Web 管理界面?试试这些开源方案
Docker Desktop 是本地容器化开发的利器,但存在无法通过 Web 远程管理、跨平台体验不一致等问题。为此,推荐几款轻量级、可 Web 化管理的 Docker 工具:Portainer 功能全面,适合企业级运维;CasaOS 集成应用商店和 NAS 功能,适合家庭/个人开发环境;Websoft9 提供预集成环境,新手友好。这些工具能有效提升容器管理效率,满足不同场景需求。
85 3
Docker+consul容器服务的更新与发现
通过本文的介绍,我们详细探讨了如何结合Docker和Consul来实现容器服务的更新与发现。通过Consul的服务注册和发现功能,可以高效地管理和监控容器化服务,确保系统的高可用性和可扩展性。希望本文能帮助您在实际项目中更好地应用Docker和Consul,提高系统的可靠性和管理效率。
84 23
如何使用Prometheus监控Docker Swarm集群的资源使用情况?
还可以根据实际需求进行进一步的配置和优化,如设置告警规则,当资源使用超出阈值时及时发出警报。通过这些步骤,能够有效地使用 Prometheus 对 Docker Swarm 集群的资源进行监控和管理。
148 8
如何监控Docker Swarm集群的性能?
如何监控Docker Swarm集群的性能?
233 8
Docker Swarm
Docker Swarm 为容器化应用的部署和管理提供了一种高效、可靠的方式,使开发者能够更轻松地构建和运行分布式应用。随着容器技术的不断发展,Docker Swarm 在企业级应用中的应用也将越来越广泛。
109 8
Docker Swarm集群的扩展与缩容策略,涵盖其意义、方法、步骤及注意事项
本文深入探讨了Docker Swarm集群的扩展与缩容策略,涵盖其意义、方法、步骤及注意事项,旨在帮助用户高效管理集群资源,适应业务变化,确保服务稳定性和资源优化。
120 6
Docker Swarm 核心概念及详细使用
Docker Swarm 是 Docker 的原生集群管理工具,用于将多个 Docker 主机整合成一个虚拟主机,提供集群管理和调度功能。其核心特点包括集群管理、容错与高可用性、负载均衡、声明式服务模型、服务发现和安全性。本文档详细介绍了 Docker Swarm 的安装配置、服务部署、节点管理、网络配置及故障模拟等关键操作,适用于中小型项目或对 Kubernetes 复杂性有所顾虑的用户。
342 6
Docker Swarm、Docker Stack和Portainer的使用
Docker Swarm、Docker Stack 和 Portainer 各有其独特的功能和优势。Docker Swarm 适用于分布式服务的管理和编排,Docker Stack 便于多容器应用的定义和部署,而 Portainer 提供了直观的 UI,简化了 Docker 环境的管理。结合使用这些工具,可以大大提高容器化应用的部署和管理效率。希望本文对您理解和应用这些工具有所帮助。
295 5
|
6月前
|
docker swarm启动服务并连接到网络
【10月更文挑战第16天】
117 5
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等