Docker图形界面管理
之前都是使用命令行进行Docker的管理,这里简单介绍一下Docker的图形界面管理。之所以说简单介绍,是因为在生产环境都是集群,很少使用图形界面管理单台Docker主机,所以就演示记录一下,在个人测试时还是可以用到的。
一、使用Docker UI进行Docker管理
1)首先,下载Docker UI镜像
[root@centos7 ~]# docker pull abh1nav/dockerui:latest
Trying to pull repository docker.io/abh1nav/dockerui ...
latest: Pulling from docker.io/abh1nav/dockerui
a3ed95caeb02: Pull complete
5d3df020ecd3: Pull complete
bebf5a3b4dfb: Pull complete
e4452c0fe72b: Pull complete
6167d9726b07: Pull complete
53ebae19a314: Pull complete
Digest: sha256:a9c6c5393f561a0f42f41cfa80572b666e745d9b419569c42bac1e5cf9ceda32
Status: Downloaded newer image for docker.io/abh1nav/dockerui:latest
2)创建Docker容器
[root@centos7 ~]# docker run -d -p 9000:9000 -v /var/run/docker.sock:/docker.sock --name dockerui abh1nav/dockerui:latest -e="/docker.sock"
5f32d12629381614c11fa9d0c742326319c3bdbd8142a61d28e3d61a091b9555
[root@centos7 ~]# docker ps -l
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
5f32d1262938 abh1nav/dockerui:latest "./dockerui -e=/do..." 4 seconds ago Up 3 seconds 0.0.0.0:9000->9000/tcp dockerui
3)使用浏览器访问

二、使用Shipyard进行Docker管理
Shipyard也是基于Docker API实现的容器图形管理系统,支持container、image、engine、cluster等功能,可满足我们基本的容器部署需求。
Shipyard介绍:
shipyard是docker的web可视化界面管理工具,是建立在docker集群管理工具Citadel之上,可以管理镜像、容器、主机等资源的web图形化工具,包括core和extension两个版本,core即shipyard主要是把多个 Docker host上的 containers 统一管理(支持跨越多个host),extension即shipyard-extensions添加了应用路由和负载均衡、集中化日志、部署等。Shipyard是在Docker Swarm实现对容器、镜像、docker集群、仓库、节点进行管理的web系统。
Shipyard特性:
支持节点动态集群,可扩展节点的规模(swarm、etcd方案)
支持镜像管理、容器管理、节点管理等功能
可视化的容器管理和监控管理
在线容console终端
Shipyard服务介绍:
| 镜像名称 | 运行服务 | 描述 |
| rethinkdb | shipyard数据库 | 一个NoSQL数据库,用于存储shipyard系统的数据,比如账号、节点、容器等信息 |
| microbox/etcd | 服务注册、发现系统 | K/V存储系统,用于Swarm节点实现服务注册、发现。也支持consul、zookeeper。 |
| shipyard/docker-proxy | docker API代理 | 连接本地/var/run/docker.sock代理,用于让Swarm Agent连接API管理。 |
| swarm | swarm集群 | 官方管理Docker集群工具,使得多个engine为一个整体管理,对外提供Swarm manager API,用户就像操作单台engine一样。 |
| shipyard/shipyard | shipyard前端 | 容器web管理系统,内部连接Swarm Manager管理容器和RethinkDB存储数据。 |
Shipyard分为自动部署和手动部署,相关文档参照:http://shipyard-project.com/deploy/ 。自动部署使用脚本自动完成,这里就做一下手动部署。
1)部署Datastore(也就是rethinkdb)
[root@centos7 ~]# docker run -itd --restart=always --name shipyard-rethinkdb rethinkdb
Unable to find image 'rethinkdb:latest' locally
Trying to pull repository docker.io/library/rethinkdb ...
latest: Pulling from docker.io/library/rethinkdb
ff4229790957: Pull complete
14645c851453: Pull complete
d4550880c6e0: Pull complete
4225e6f741d5: Pull complete
fb3b67be7bfa: Pull complete
Digest: sha256:f71d44a28322bf17aa0d3dd6ccbcba8ff4d59fdda8a132576d6c3132b6ed0e0c
Status: Downloaded newer image for docker.io/rethinkdb:latest
88d777e4b3b29b18b6fa86c6fdacc0188cf0f43792528264ed1a55c47597b566
[root@centos7 ~]# docker ps -l
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
88d777e4b3b2 rethinkdb "rethinkdb --bind all" 5 seconds ago Up 4 seconds 8080/tcp, 28015/tcp, 29015/tcp shipyard-rethinkdb
2)部署发现服务(也就是etcd)
[root@centos7 ~]# docker run -itd --name shipyard-discovery -p 4001:4001 -p 7001:7001 --restart=always microbox/etcd -name discovery
Unable to find image 'microbox/etcd:latest' locally
Trying to pull repository docker.io/microbox/etcd ...
latest: Pulling from docker.io/microbox/etcd
8ded6e8ab3fd: Pull complete
bf8f85223d7a: Pull complete
a3ed95caeb02: Pull complete
Digest: sha256:941fd46b4eab265c65da9bfbf33397b853a7cef6c16df93a1e3fea7b4e47fc90
Status: Downloaded newer image for docker.io/microbox/etcd:latest
d6c0c946b42f541f91c1b183e99706054dc164fa66bcc91be13a3bdfe2dc272a
[root@centos7 ~]# docker ps -l
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
d6c0c946b42f microbox/etcd "/bin/etcd -name d..." 4 seconds ago Up 4 seconds 0.0.0.0:4001->4001/tcp, 0.0.0.0:7001->7001/tcp shipyard-discovery
3)部署docker代理服务(也就是docker-proxy)
[root@centos7 ~]# docker run -itd -p 2375:2375 --hostname=$HOSTNAME --restart=always --name shipyard-proxy -v /var/run/docker.sock:/var/run/docker.sock -e PORT=2375 shipyard/docker-proxy:latest
Unable to find image 'shipyard/docker-proxy:latest' locally
Trying to pull repository docker.io/shipyard/docker-proxy ...
latest: Pulling from docker.io/shipyard/docker-proxy
8f4ec95ceaee: Pull complete
ac77a345f217: Pull complete
43039e3ef672: Pull complete
a3ed95caeb02: Pull complete
Digest: sha256:da6bbd1a145581a940d44940cce0f43705d7f8ec552a4e97e77104ec1b6dc3d1
Status: Downloaded newer image for docker.io/shipyard/docker-proxy:latest
0eae3c9b83883d48fe211ed4f51753430a45a6fd10781019d24715ff1c982747
[root@centos7 ~]# docker ps -l
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
0eae3c9b8388 shipyard/docker-proxy:latest "/usr/local/bin/run" 11 seconds ago Up 10 seconds 0.0.0.0:2375->2375/tcp shipyard-proxy
4)部署Swarm Manager
[root@centos7 ~]# docker run -itd --restart=always --name shipyard-swarm-manager swarm:latest manage --host tcp://0.0.0.0:3375 etcd://192.168.49.40:4001
Unable to find image 'swarm:latest' locally
Trying to pull repository docker.io/library/swarm ...
latest: Pulling from docker.io/library/swarm
d85c18077b82: Pull complete
1e6bb16f8cb1: Pull complete
85bac13497d7: Pull complete
Digest: sha256:406022f04a3d0c5ce4dbdb60422f24052c20ab7e6d41ebe5723aa649c3833975
Status: Downloaded newer image for docker.io/swarm:latest
04575174ea8c0040a72840a44fab1f494d39dadde4fb097fa7fbb485c8320656
[root@centos7 ~]# docker ps -l
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
04575174ea8c swarm:latest "/swarm manage --h..." 12 minutes ago Up 12 minutes 2375/tcp shipyard-swarm-manger
6)部署shipyard管理控制服务
[root@centos7 ~]# docker run -itd --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
Unable to find image 'shipyard/shipyard:latest' locally
Trying to pull repository docker.io/shipyard/shipyard ...
latest: Pulling from docker.io/shipyard/shipyard
cb5507795515: Pull complete
fd711d385b34: Pull complete
9f2a509de079: Pull complete
a5251eb716bb: Pull complete
Digest: sha256:5f065362680fa4565dd150c8da3edd09b79a7a3010d3ceef20093c2a879187e0
Status: Downloaded newer image for docker.io/shipyard/shipyard:latest
464149d452e503340827afcaf1a87a114797ac7f0a6cbf15b7b6f0686f1fba15
[root@centos7 ~]# docker ps -l
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
464149d452e5 shipyard/shipyard:latest "/bin/controller s..." 7 seconds ago Up 6 seconds 0.0.0.0:8080->8080/tcp shipyard-controller
7)使用浏览器访问

shipyard的登录界面,默认账号密码是admin/shipyard,登录即可。
Docker图形界面管理的更多相关文章
- Docker图形界面管理之Shipyard
一.介绍 Shipyard基于Docker API实现的容器图形管理系统,支持container.images.engine.cluster等功能,可满足我们基本的容器部署需求. 可堆栈的Docker ...
- Docker图形界面管理之DockerUI
DockerUI DockerrUI是一个基于Docker API提供图形化页面简单的容器管理系统,支持容器管理.镜像管理. 1.1 下载镜像 docker pull abh1nav/dockerui ...
- Docker入门与应用系列(八)Docker图形界面管理之Shipyard
Shipyard基于Docker API实现的容器图形管理系统,支持container.images.engine.cluster等功能,可满足我们基本的容器部署需求可堆栈的Docker管理基于Doc ...
- Docker图形界面管理之Portainer
介绍 Portainer是一个开源.轻量级Docker管理用户界面,基于Docker API,可管理Docker主机或Swarm集群,支持最新版Docker和Swarm模式.官方文档 https:// ...
- Docker入门与应用系列(七)Docker图形界面管理之DockerUI
1.dockeruiDockerrUI是一个基于Docker API提供图形化页面简单的容器管理系统,支持容器管理.镜像管理.1.1 下载镜像 docker pull abh1nav/dockerui ...
- Windows Azure Storage图形界面管理工具
上一篇我们介绍了用PowerShell将Windows Azure的存储服务当网盘来使用.如果感觉还不够简单,那么这次我们来看看还有哪些使用起来更方便的图形界面管理工具吧.当然,这些工具必要支持中国版 ...
- 10款最好用的MySQL数据库客户端图形界面管理工具
MySQL Workbench 该工具由MySQL开发,是一个跨平台的可视化数据库设计工具.它是DBDesigner4项目备受期待的替代者,它是一个本地图形化工具,支持的操作系统包括Windows.L ...
- redis的图形界面管理工具:phpredisadmin
大部分人都知道redis是一款用在缓存服务器上的软件,它与memcache类似,都可以存储海量的数据,用在大访问量的web网站.聊天记录存放等方面,但是又与memcache不同: 1.缓存数据可以持久 ...
- Cordova - Windows版本图形界面管理工具,告别命令行输入方式!
Cordova本身提供的是命令行管理工具,并没有提供图形界面管理工具,虽然命令行管理工具可以完成所有Cordova管理,但是对于我这种懒蛋,可真不希望每次都输入命令,而且我更担心一旦输错一个字符,命令 ...
随机推荐
- 前端基础进阶(十五):详解 ES6 Modules
对于新人朋友来说,想要自己去搞定一个ES6开发环境并不是一件容易的事情,因为构建工具的学习本身又是一个非常大的方向,我们需要花费不少的时间才能掌握它. 好在慢慢的开始有大神提供了一些非常简单易懂,学习 ...
- spring设计模式之applicationContext.getBean("beanName")思想
1.背景 在实际开发中我们会经常遇到不同的业务类型对应不同的业务处理,而这个业务类型又是经常变动的; 比如说,我们在做支付业务的时候,可能刚开始需要实现支付宝支付和微信支付,那么代码逻辑可能如下 /* ...
- [JavaWeb基础] 022.线程安全(一)
在我们做客户端程序的时候我们经常会碰到线程安全的问题,比较经典的例子就是模拟局域网聊天.那么线程的安全到底是怎么回事呢,我们经常会听到StringBuffer是线程安全的,StringBuilder不 ...
- [工具-004]如何从apk中提取AndroidManifest.xml并提取相应信息
跟上一篇类似,我们也需要对APK的一些诸如umengkey,ADkey,TalkingData进行验证,那么我们同样需要解压apk文件,然后提取其中的AndroidManifest.xml.然后解析x ...
- 二维DCT变换 | Python实现
引言 最近专业课在学信息隐藏与数字水印,上到了变换域隐藏技术,提到了其中的DCT变换,遂布置了一个巨烦人的作业,让手动给两个\(8\times8\)的矩阵做二维DCT变换,在苦逼的算了一小时后,我决定 ...
- Hello, CTF
0x01 拿到题目后查壳,发现什么也没有,32位vc++ 0x02 放到IDA里,F5反编译,得到下图 很容易我们就看到了比较的函数,以及出现wrong和success的字符串,所以接下来就是仔细分析 ...
- Rocket - debug - Example: Write Memory
https://mp.weixin.qq.com/s/on1LugO9fTFJstMes3T2Xg 介绍riscv-debug的使用实例:使用三种方法写内存. 1. Using System Bus ...
- Java实现 LeetCode 414 第三大的数
414. 第三大的数 给定一个非空数组,返回此数组中第三大的数.如果不存在,则返回数组中最大的数.要求算法时间复杂度必须是O(n). 示例 1: 输入: [3, 2, 1] 输出: 1 解释: 第三大 ...
- Java实现 LeetCode 312 戳气球
312. 戳气球 有 n 个气球,编号为0 到 n-1,每个气球上都标有一个数字,这些数字存在数组 nums 中. 现在要求你戳破所有的气球.每当你戳破一个气球 i 时,你可以获得 nums[left ...
- java实现迷宫问题
迷宫问题 对于走迷宫,人们提出过很多计算机上的解法.深度优先搜索.广度优先搜索是使用最广的方法.生活中,人们更 愿意使用"紧贴墙壁,靠右行走"的简单规则. 58 下面的代码则采用了 ...