项目介绍

docker可视化管理平台,使用vue + python flask 前后端分离实现。GitHub地址:https://github.com/guojiaxing1995/docker-manager
这个工具设计的初衷是为了更加方便的对多台服务器进行docker管理,减少平时工作中切换登录不同服务器和执行命令的时间,提高工作效率。同时也为不熟悉docker的人提供帮助,能够更加直观的认识和学习docker。
目前实现了工作中一般用到的基本命令:如 镜像查询、镜像拉取、镜像删除、创建容器、启动容器、停止容器、删除容器、动态查看日志、进入容器等。

docker可视化管理工具 Docker Manager
这里需要说下项目结构。后端框架都是flask,但是分了两个后端。原因是在做动态日志的时候后端使用了flask-socketio这个库,而进入容器操作其实就是一个web terminal,这个功能参考网上使用了flask-sockets库,这两个库不兼容无法同时使用。

工具介绍

资源总览

实现对服务器基本信息的查看
docker可视化管理工具 Docker Manager

镜像管理

当前所选服务器的 镜像列表查询、镜像删除、创建容器
docker可视化管理工具 Docker Manager
镜像查询、镜像拉取
docker可视化管理工具 Docker Manager
创建容器
docker可视化管理工具 Docker Manager

容器管理

当前所选服务器的容器列表查询、容器启动、停止、删除
docker可视化管理工具 Docker Manager
查看实时日志
docker可视化管理工具 Docker Manager
web terminal(进入容器执行命令)
docker可视化管理工具 Docker Manager

安全性

对docker实现远程操作,实际是调用了docker remote api,这需要被调用的服务器开启远程访问权限,允许其被远程操作,默认端口是2375。这就带来一个问题,只要知道这台服务器IP的人都可以通过api对该服务器进行远程操作,这是极其不安全的。之前我的个人服务器就是被远程调用创建异常容器后中了挖矿病毒。这就需要对docker api 访问进行鉴权。

docker可视化管理工具 Docker Manager
docker可视化管理工具 Docker Manager
在后端项目中,config目录下是所有的配置文件。其中hosts.yaml文件配置的是要管理的服务器。每个服务器有两个属性,host是访问域名或IP,certification是目标服务器是否会对docker api 进行鉴权(如何开启远程api访问和鉴权可去docker官网查询相关资料)。如果是需要鉴权的服务器,需要在certification目录下建一个以被鉴权服务器host为名称的文件夹,将cert.pem和key.pem文件放在下面即可。

相关文章: