本文已参与「新人创作礼」活动,一起开启掘金创作之路。
docker-ui对比
DockerUI项目已弃
功能
- 支持容器管理
- 支持镜像管理
- 基于docker api,自身也是一个容器。
- 稳定性高
- 可动态显示显示容器之间关系图
- 容器管理,增加端口映射,增加系统变量、映射目录等 缺点
- 没有登录验证,因为没有登录体系,目前解决办法是,只开放本地访问,或者通过TLS来对权限进行控制。
- 无法分配某容器给某用户。
- 不支持多主机。
- 不支持集群swarm等
- 功能少
- 不支持控制台命令
链接
github.com/kevana/ui-f…
blog.csdn.net/sannerlittl…
DockerManager(不推荐)
优点: UI界面简单简洁
缺点: 没有权限控制, 2375需要加密通信否则有安全风险
链接
blog.csdn.net/qq_36450484…
github.com/guojiaxing1…
Shipyard(2016不在维护)
功能
- 支持镜像管理、容器管理。
- 支持控制台命令
- 容器资源消耗监控
- 支持集群swarm,可以随意增加节点
- 支持控制用户管理权限,可以设置某个容器对某个用户只读、管理权限。
- 有汉化版(2016也不维护了) 缺点
- 启动容器较多,占用每个节点的一部分资源
- 兼容性性不高,可能是我自身原因,经常打不开首页
- 结论
- 总体上讲Shipyard功能强大,实用型高,支持集群,支持容器权限分配,是公司不二之选,但是考虑到暂时经常打不开首页,且占用每台服务器较多资源
链接
www.cnblogs.com/songjy2116/…
官网: github.com/ehazlett/sh…
汉化版: registry.hub.docker.com/r/shipyard/…
Rancher(可尝试)
优点
- 管理主机集群
- 支持多种调度器,通过环境模板,很容易地创建和部署Cattle、Swarm、K8S、Mesos容器集群管理调度平台。 缺点
- 镜像管理功能薄弱,无镜像导入、导出功能,镜像只能通过镜像库获取。
- Rancher1.6支持Docker Swarm集群技术
- Rancher2.0不再支持Docker Swarm 结论: 镜像管理功能薄弱,无镜像导入、导出功能,镜像只能通过镜像库获取。如无镜像导入、导出需求,可作为不二之选
swirl
优点:
国人开发的针对swarm集群管理工具,支持中文,界面清爽简洁
常用管理功能都有: 服务伸缩、监控数据展示、编排等等
缺电:
作者忙于其他事情,项目暂时没更新,一些功能后期完善,如: agent
官网: github.com/cuigh/swirl
Portainer(推荐)
Portainer 是一个轻量级的管理 UI ,可管理不同的 Docker 环境(Docker 主机或 Swarm 群集)的资源容器、镜像、卷、网络等
Portainer 由 2部分组成: Server 和 Agent(可以管理docker所在宿主机的资源, 如删除容器、镜像)
Portainer 1.17+ 仅支持Docker内置的Swarm模式
ui界面操作缺点:
启停删 容器或镜像 都要进对应agent节点,缺少从全局管理的视角
Portainer安装
参考链接
部署先决条件: docs.portainer.io/v/ce-2.11/s…
官网安装: docs.portainer.io/v/ce-2.9/st…
官网docker镜像: registry.hub.docker.com/r/portainer…
推荐Docker Swarm + Portainer blog.51cto.com/wangzhijian…
端口说明
ui api: 9443 30779(监控k8s)
tcp 8000
代理 9001 30778(监控k8s)
环境
centos7 docker-v19.03.12 DockerSwarm已安装 portainer2.11
服务端安装
方法1: 已dcoker容器独立运行
参考: docs.portainer.io/v/ce-2.11/s…
docker volume create portainer_data
docker run -d -p 8000:8000 -p 9443:9443 -p 9000:9000 --restart=always -v /var/run/docker.sock:/var/run/docker.sock -v portainer_data:/data \
--name portainer-s portainer/portainer-ce:2.11.1
方法2: 已service形式部署到docker swarm集群中(推荐)
参考: docs.portainer.io/v/ce-2.11/s…
docker service create --replicas 1 --network ops --publish 9000:9000 --constraint 'node.role == manager' \
--mount type=bind,src=//var/run/docker.sock,dst=/var/run/docker.sock \
--name portainer-s portainer/portainer-ce:2.11.1 # 加了这个参数运行失败 -H unix:///var/run/docker.sock
测试
ip:9000 admin/Dutall_123
客户端安装
Portainer代理作为全局服务部署到集群中的每个节点上
方法1: 容器方式部署
docker run -d -p 9001:9001 --name portainer-c --restart=always \
-v /var/run/docker.sock:/var/run/docker.sock -v /var/lib/docker/volumes:/var/lib/docker/volumes \
portainer/agent:2.11.1
方法2: 服务方式部署(推荐)
curl -L https://downloads.portainer.io/portainer-agent-stack.yml -o portainer-agent-stack.yml
docker stack deploy -c portainer-agent-stack.yml portainer