docker图形化管理

Docker针对于系统工程师或者开发人员来说操作比较简单。一般我们习惯了对着黑黑的屏幕敲命令,docker pull、docker push、docker run、docker logs、docker ps等等。或者我们将常用的Docker原生api封装到我们的shell脚本工具或者python脚本工具中去使用管理Docker。然而对于部分用户,或者说非技术用户去使用Docker难度其实不小。因此一个明了的可视化管理界面显得非常重要了。下面我们学习DockerUI、shipyard、Portainer这三种Docker可视化管理界面

DockerUI

运行Docker容器和管理它们可能会花费一点点努力和时间,所以现在有一款基于web的应用程序DockerUI,可以让管理和运行容 器变得很简单。DockerUI 是一个对那些不熟悉Linux命令行,但又很想运行容器化程序的人很有帮助的工具。DockerUI是一个开源的基于web的应用程序,它最值得称道的是它华丽的设计和用来运行和管理Docker的简洁的操作界面

1、部署

下载uifd/ui-for-docker镜像,示例如下

[root@docker ~] docker pull uifd/ui-for-docker
[root@docker ~] docker run --name cydocker-web -itd -p 9000:9000 -v /var/run/docker.sock:/var/run/d
ocker.sock docker.io/uifd/ui-for-docker
bf33e4651b749d2edbd9398f383190800371042144c693aee9feff207738d6bb
2、使用

在浏览器输入http://ip:9000即可访问了。如图所示,界面比较整洁。首页的信息分别是运行中的容器(附带运行了的时间),容器创建记录曲线,和镜像创建记录曲线

在这里插入图片描述

容器管理基本,如图所示,展示的信息比较齐全,但是忽略了我们比较常用管理容器的方式之一,就是查看日志功能也就是dockerlogs的展示,也少了连接到容器内部执行命令的可视化操作,也就是dockerexec

在这里插入图片描述

如图所示,是容器网络关系图

在这里插入图片描述

Shipyard

Shipyard是一个基于Web的Docker管理工具,支持多Dockerhost,可以把多个Dockerhost上的容器统一管理;可以查看images,甚至buildimages;并提供RESTfulAPI等,其特性主要包括:

  1. 支持节点动态集群,可扩展节点的规模(swarm、etcd方案)
  2. 支持镜像管理、容器管理、节点管理等功能
  3. 可视化的容器管理和监控管理
  4. 在线容器console终端
1、部署

使用Shipyard官方提供的自动部署脚本完成部署,下载脚本,但是此时官网不能够下载,下载地址如下:

链接:https://pan.baidu.com/s/1tUZbKge_SvqjA7-G4cDnwQ 提取码:i1dc

为了满足国人的需求,早在2016年前dockerclub就推出了汉化版,便于国人使用。此处,便使用的是汉化版。如果需要使用英文版,则只需修改deploy脚本中IMAGE=IMAGE:−dockerclub/shipyard:latest为IMAGE={IMAGE:-dockerclub/shipyard:latest}为IMAGE=IMAGE:dockerclub/shipyard:latestIMAGE={IMAGE:-shipyard/shipyard:latest}即可

开始部署,部署完毕后,会提示管理url,以及登陆的账号与密码,默认账号admin,密码shipyard,示例如下

[root@docker~] tar-zxvfshipyard.tar.gz
[root@docker~] cdshipyard/
[root@dockershipyard] shinstall.sh
2、使用

访问http://ip:8080,输入账号密码登陆,如图所示

在这里插入图片描述

登录进去界面如上,导航栏分别是容器(默认首页),镜像,节点,仓库,以及用户管理和操作日志。如图所示。容器管理界面一目了然,容器健康情况,容器ID,容器在哪个节点启动,容器名称,启动的镜像,运行时长,创建时间都十分明了。shipyard支持创建容器,点击界面的左上方的创建容器

在这里插入图片描述

如图所示,是创建容器的界面,基本上把我们创建容器的常用参数都包含进去了,填写镜像名称,点击部署,我们创建一个容器

在这里插入图片描述

如图所示,在容器管理中,就看到了我们之前创建的容器。再点击该容器最后面的扳手图标,该功能是对容器的具体操作,启动,停止,删除,而且这里也包括了我们比较常用的健康监控(CPU,内存,可以查看5秒10秒30秒1分钟的图表),命令行console操作和查看日志的logs操作
在这里插入图片描述

另外一个放大镜的选项是针对容器的具体信息显示页面信息十分详细,包括挂载,端口映射,执行命令和容器里启动的进程信息,如图所示

在这里插入图片描述

删除Shipyard,示例如下

[root@docker~] catdeploy|ACTION=removebash

在Shipyard添加节点,实现多主机管理,示例如下。在本次演示中,只有一个节点

[root@docker~] catdeploy|ACTION=nodeDISCOVERY=etcd://主服务器IP:4001bash

Portainer

Portainer是一个轻量级的Docker环境管理UI,可以用来管理Dockerhost和Dockerswarm集群。它的轻量级,轻量到只要个不到100M的Docker镜像容器就可以完整的提供服务。直接启动即可,非常方便。主要功能:

  1. 提供状态显示面板:显示主机或者swarm集群上有多少镜像,容器等
  2. 应用模板快速部署:可快速创建容器
  3. 事件日志显示:对任何操作有记录,并且有页面可以显示审计日志
  4. 容器控制台操作:查看容器,管理容器,查看容器占用的性能(内存,cpu等)
  5. 登录用户管理:有完备的用户系统,权限控制
1、部署

(1)下载Portainer镜像

[root@docker~] dockerpullportainer/portainer

(2)更多的情况下,我们会有一个Docker集群,可能有几台机器,也可能有几十台机器,因此,进行集群管理就十分重要了,Portainer也支持集群管理,Portainer可以和Swarm一起来进行集群管理操作。本次演示单机版。Portainer运行十分简单,只需要一条语句即可启动容器,来管理该机器上的docker镜像、容器等数据。示例如下

[root@docker~] docker run --name cyportainer -d -p 9001:9000 -v /var/run/docker.sock:/var/run/docker.sock portainer/portainer
2、使用

访问http://ip:9001/#/auth,登陆默认账号admin,密码会在第一次登陆时重新设置,如图所示

在这里插入图片描述

登陆后选择Local,管理本地Docker,再点击Connect,如图所示

在这里插入图片描述

接下来就进入Portainer的管理界面了,可以看到当前管理了一台Docker,点击我们刚添加的local,如图所示

在这里插入图片描述

可以看到我们创建的容器信息,包括创建时间,分配的IP,所用的镜像等。同时还可以对容器进行控制,包括启动、关闭、重启等。点击ADDcontainer按钮,创建容器,如图所示

在这里插入图片描述

进入创建容器界面,填写使用的镜像名,再点击Deploythecontainer按钮,开始创建,如图所示
在这里插入图片描述

除此之外,在创建容器时,还可以指定容器所使用的Network、Volume、Env等,如图所示

在这里插入图片描述

点击左边导航中的Containers,即可看到之前所创建的容器,如图所示

在这里插入图片描述

总结

  1. DockerUI是一个开源的基于web的应用程序,它最值得称道的是它华丽的设计和用来运行和管理Docker 的简洁的操作界面
  2. 我们经常对容器的操作无非创建,交互执行命令,查看日志和查看健康状态。DockerUI这方面功能不够全面,缺少了创建,交互执行命令以及查看日志的功能
  3. Shipyard是一个基于Web的Docker管理工具,支持多Dockerhost,可以把多个Dockerhost上的容器统一管理。
  4. Shipyard可以管理容器,镜像,私有仓库,这个针对Docker的生态圈管理很全面
  5. 目前常用的Docker图形化管理工具有:DockerUI、Shipyard、Portainer
  6. Portainer是一个轻量级的Docker环境管理UI,轻量到只要个不到100M的Docker镜像容器就可以完整的提供服务。直接启动即可,异常方便
  7. 在部署Docker图形化工具时,都绑定/var/run/docker.sock,容器需要通过/var/run/docker.sock与docker守护进行通讯,执行管理操作
Logo

码道开发者社区,聚焦华为云码道 CodeArts 代码智能体,沉淀 Agent、Skill、鸿蒙开发实战内容,供开发者查阅资料、交流技术、分享工程实践

更多推荐