天天看点

docker从入门到实战系列8-docker可视化管理工具DockerUI

作者:大刚测试开发实战

前言

在前面的文章中,已经介绍了docker环境搭建、docker常用操作命令、docker使用技巧、docker一键快速搭建环境、dockerfile构建自定义镜像、docker-compose容器编排。但在实际使用过程中,可能会存在部分操作命令记不清、或是批量处理镜像及容器等需求。如果能在不需要命令行键入命令的情况下,通过页面傻瓜式操作就可以实现容器及镜像的管理,那将带来极大地便捷性。

当前市面上有很多docker可视化工具可以提供类似功能,比如UI For Docker、Portainer、Shipyard等,关于这三款工具可以参考:《三种docker可视化工具》。而本次文章的重点则是介绍一款强大的、开源的工具:Docker UI。

一、简介

DockerUI是一款开源的、强大的、轻量级的Docker管理工具。DockerUI覆盖了 docker cli 命令行 95% 以上的命令功能,通过可视化的界面,即使是不熟悉docker命令的用户也可以非常方便的进行Docker和Docker Swarm集群进行管理和维护。

DockerUI后端使用Go语言开发,前台框架使用CubeUI。通过Docker Restful API,经过Go语言编写的Proxy端, 实现和Docker Daemon进行通信,从而实现Docker的管理命令和维护命令。

docker从入门到实战系列8-docker可视化管理工具DockerUI

官网:https://github.com/gohutool/docker.ui

二、特征

  • Docker主机管理管理 数据卷管理、镜像管理、容器管理、构建管理、仓库配置管理、网络配置管理
  • Docker swarm集群管理 集群配置信息、节点管理、服务管理、任务管理、密码管理、配置管理
  • 任务安排 Docker任务调度、docker swarm任务调度

三、安装

安装方式和步骤在GitHub或是项目下载下来以后的README.md文件中都有说明:

一种是从GitHub安装,一种是通过docker进行安装。

docker从入门到实战系列8-docker可视化管理工具DockerUI

1.常规方式安装(推荐)

1)下载docker.ui源码

git clone https://github.com/gohutool/docker.ui.git           

2)安装golang运行环境

docker.ui 运行依赖go环境,需要提前安装go环境。安装过程整体比较简单:

① 创建go文件夹

cd /home
mkdir go           

② 下载go压缩包并解压缩

https://golang.google.cn/dl/,选择对应系统下载文件

docker从入门到实战系列8-docker可视化管理工具DockerUI

也可以通过wget命令下载:

wget https://golang.google.cn/dl/go1.19.1.linux-amd64.tar.gz
tar -xvf go1.19.1.linux-amd64.tar.gz           

③ 添加到环境变量

编辑/etc/profile,添加如下内容:

export GO_HOME=/home/golang/go
export PATH=$PATH:$GO_HOME/bin           

④ 重载环境变量

source /etc/profile           

⑤ 验证是否安装成功

go --help           

出现以下信息表示安装配置成功:

docker从入门到实战系列8-docker可视化管理工具DockerUI

3)项目配置

进入docker.ui项目目录,执行以下命令,编译生成server文件

export GO111MODULE=on
export GOPROXY="https://goproxy.cn,direct"
go mod tidy
go mod download
go build -o server .  # 执行完成后目录下会多出一个server文件           

4)启动服务

./server           

启动后会开放8999端口,可以通过 http://ip:8999 进行访问

docker从入门到实战系列8-docker可视化管理工具DockerUI

5)创建启动脚本

通过./server启动会一直处于前台运行,无法再进行别的操作,一旦Ctrl+C,将终止程序进程。对此,我们可以创建一个启动脚本start.sh,达到后台运行的目的,脚本内容如下:

nohup ./server >nohup.out 2>&1 &           

其中:

  • nohup:即no hang up,放在命令的开头,表示不挂起,使进程保持运行状态,一般配合&使用;
  • 2:表示标准错误,2>表示错误重定向;
  • 1:表示标准输出,所以2>&1就表示将标准错误重定向到标准输出;
  • &:放在命令结尾,表示后台运行;

所以,整条命令的作用就是:以后台方式运行server服务,并将运行产生的log日志输出到nohup.out文件。此时我们再通过"tail -f nohup.out"命令即可达到实时查看服务日志的效果。

2.通过容器安装

官方提供了两种安装方式,除了上述提到的传统安装方式,也提供了docker一键部署。不过我之前使用docker部署后,在使用时会报错,当时还在GitHub上提了issue,不知道目前解决了没有。以下部署方式仅供参考:

1)拉取镜像

docker image pull joinsunsoft/docker.ui           

2)创建容器

docker run --restart always --name docker.ui -d -v /home/docker_data/docker.ui/docker.sock:/var/run/docker.sock -p 8999:8999 joinsunsoft/docker.ui           

3.浏览器访问

安装完成并启动成功后,即可通过 http://ip:8999 进行访问,例如 http://192.168.1.122:8999

默认账号密码:ginghan 123456,登录后首页如下:

它会自动识别当前主机下的所有镜像、数据卷、容器等,无需做任何配置,同时也能够监控当前系统资源使用情况。

docker从入门到实战系列8-docker可视化管理工具DockerUI

四、快捷操作

本次主要演示两个实例,一个是从私有化仓库拉取指定镜像(和前面的harbor私有化仓库串联起来),一个是基于这个镜像创建容器。

1.搜索/拉取镜像

1)从官方仓库拉取

拉取镜像有两种方式,一种是从docker官方仓库直接拉取,一种是从自己配置的自定义仓库拉取。从官方仓库的方式不必多说,直接搜索,然后从搜索结果拉取即可。

docker从入门到实战系列8-docker可视化管理工具DockerUI

2)从私有化仓库拉取

① 添加私有化仓库

本次重点介绍如何从本地仓库进行拉取。在拉取本地镜像前,需要将harbor和docker.ui中的仓库进行关联。我们前面搭建的harbor私有化仓库如下:

docker从入门到实战系列8-docker可视化管理工具DockerUI

此时就可以在docker.ui中先添加:

注意仓库地址一定要具体到harbor中的项目名称,如果harbor中有多个项目:harbor、jenkins、mysql,则需要在docker.ui中添加多个仓库,分别取名为:harbor、jenkins、mysql,地址则分别对应填写为:

  • http://192.168.1.122:8088/harbor
  • http://192.168.1.122:8088/jenkins
  • http://192.168.1.122:8088/mysql
docker从入门到实战系列8-docker可视化管理工具DockerUI

② 拉取镜像

  • 名称选择新添加的私有化仓库harbor(对应harbor中的项目)
  • 镜像选择仓库中的镜像(对应harbor中这个项目下的镜像)
  • TAG为仓库中对应标签(这个镜像的标签)
  • 用户名密码为登录harbor的用户名和密码(与harbor管理后台一致)
docker从入门到实战系列8-docker可视化管理工具DockerUI

2.创建容器

① 创建容器

IMAGE是自动填充的,我设置的比较简单,就设置了一个名字、重启策略、主机名,注意容器名字不能和系统现有容器名称重复:

docker从入门到实战系列8-docker可视化管理工具DockerUI

端口号一定要设置,例如Jenkins的8080端口,为了避免和系统现在用的8080端口冲突,我把它映射到了本机的8099端口:

docker从入门到实战系列8-docker可视化管理工具DockerUI

注意事项:创建过程中如有部分字段填写错误,创建即使报错可能也会创建成功,但界面还停留在创建界面。所以如果遇到提交时名称重复的话,很可能是和已创建的容器名称重复了,需要将第一次创建的容器删除后再次创建。

创建完成后,即可看到新创建的名为docker_jenkins的容器:

docker从入门到实战系列8-docker可视化管理工具DockerUI

② 启动容器

直接点击该容器的启动按钮即可

docker从入门到实战系列8-docker可视化管理工具DockerUI

③ 前台访问

http://192.168.1.122:8099/ 访问成功

docker从入门到实战系列8-docker可视化管理工具DockerUI

3.其他操作快照

镜像列表

docker从入门到实战系列8-docker可视化管理工具DockerUI

构建镜像

docker从入门到实战系列8-docker可视化管理工具DockerUI

导入/导出镜像

docker从入门到实战系列8-docker可视化管理工具DockerUI

推送镜像

docker从入门到实战系列8-docker可视化管理工具DockerUI

执行镜像

docker从入门到实战系列8-docker可视化管理工具DockerUI

小结

docker.ui这款可视化工具为界面化操作docker带来了极大便捷,但也并不是完全傻瓜式就可以操作,还是需要一定的docker知识基础才能熟练运用。