Docker-可视化管理工具总结-推荐使用Portainer
对于初学docker的小白,一款好的可视化工具有助于快速掌握docker基本形态和概念,下面针对docker可视化工具做些总结
ui-for-docker
UI For Docker是一个使用Docker Remote API的web接口,目的是提供一个简洁纯净的客户端实现,为了连接和管理Docker; 该工具目前已经无人维护,建议使用下面介绍的portainer
docker run -it -d --name docker-web --restart always -p 9000:9000 -v /var/run/docker.sock:/var/run/docker.sock docker.io/uifd/ui-for-docker
1.优点
# 支持容器管理
# 支持镜像管理
# 基于docker api,自身也是一个容器。
# 稳定性高
# 可动态显示显示容器之间关系图
# 容器管理,增加端口映射,增加系统变量、映射目录等
2.缺点
# 没有登录验证,因为没有登录体系,目前解决办法是,只开放本地访问,或者通过TLS来对权限进行控制。
# 无法分配某容器给某用户。
# 不支持多主机。
# 不支持集群swarm等
# 功能少
# 不支持控制台命令
Portainer
https://www.portainer.io/installation/
是一款Docker可视化管理工具,可让您轻松构建和管理 Docker、Docker Swarm、Kubernetes 和 Azure ACI 中的容器。
Portainer 将管理容器的复杂性隐藏在易于使用的 UI 后面。通过消除使用 CLI、编写 YAML 或理解清单的需要,Portainer 使部署应用程序和解决问题变得如此简单,任何人都可以做到
Portainer-架构
Portainer 由两个元素组成:Portainer 服务器和 Portainer 代理。两者都在您现有的容器化基础设施上作为轻量级容器运行。Portainer 代理应该部署到集群中的每个节点,并配置为向 Portainer 服务器容器报告。
单个 Portainer 服务器将接受来自任意数量的 Portainer 代理的连接,从而提供从一个集中式界面管理多个集群的能力。为此,Portainer Server 容器需要数据持久性。Portainer 代理是无状态的,数据被传送回 Portainer 服务器容器。
Portainer-安装
运行下面两条命令即可。这些命令会创建一个Portainer专用的卷,然后在8000和9000端口创建容器并运行。
- 基于本地容器的部署
如果使用Portainer管理本地Docker主机的话,需要绑定/var/run/docker.sock(这里是个知识点,涉及docker 之间通信的问题,以及docker 里运行docker )
$ docker volume create portainer_data
$ docker run --name portainer --restart always -d -p 8000:8000 -p 9000:9000 -v /var/run/docker.sock:/var/run/docker.sock -v portainer_data:/data portainer/portainer
然后在浏览器打开对应地址,就会发现成功运行了。第一次运行的时候需要设置账号,然后选择要管理的Docker主机。
注意:portainer/portainer 是 Portainer v1.24.x 的镜像名,现在已弃用;从 2022 年 1 月开始,Portainer 2.0 的所有新版本都将在 portainer/portainer-ce 中发布
docker run -d -p 8000:8000 -p 9443:9443 --name portainer --restart=always -v /var/run/docker.sock:/var/run/docker.sock -v portainer_data:/data portainer/portainer-ce:2.11.1
- 连接到远程容器的部署
docker run -d -p 9000:9000 --name portainer --restart always -v portainer_data:/data portainer/portainer -H tcp://<REMOTE_HOST>:<REMOTE_PORT>
ps:-H 后面的remote是你想用portainert管理的docker
添加新的容器集群环境
1. 本机连接方式
只能在创建 Portainer Server 容器时添加本地环境。部署 Portainer 后,您无法添加本地环境
第一次登陆会让选择管理的容器环境,这里可以选择本机,通过挂载/var/run/docker.sock 和docker 守护进程通信(如图所示),关于这部分知识后面会总结分享出来。


之后就可以看到本机上运行的Docker容器了,点击它们还可以进行容器的管理。
左边的条目可以管理卷、创建容器、查看主机信息等等。基本上该有的功能都有了
2. Remote连接方式
通过该方式,可以将远程机器添加到Portainer服务端,统一管理远程机器上的容器环境
将 Docker Standalone 主机连接到 Portainer 时,可以使用两种方法。您可以通过 TCP 直接连接到 Docker API,也可以在 Docker Standalone 主机上安装 Portainer 代理并通过代理连接。
https://docs.portainer.io/v/ce-2.11/admin/environments/add/docker
1) 通过远程访问TCP:2375端口绑定环境
使用Remote要求被管理的主机开启docker守护线程监听端口
可以在/etc/docker/daemon.json中添加如下配置
{
"hosts": ["tcp://0.0.0.0:2375", "unix:///var/run/docker.sock"]
}
2) 通过Portainer Agent方式管理docker环境
https://docs.portainer.io/v/ce-2.11/start/install/agent/docker/linux
使用Agent需要在要监控的主机上创建一个portainer agent容器
docker run -d -p 9001:9001 --name portainer_agent --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

3) 通过Portainer Agent方式管理k8s集群环境
在k8s集群上执行以下命令
url -L https://downloads.portainer.io/portainer-agent-ce211-k8s-nodeport.yaml -o portainer-agent-k8s.yaml; kubectl apply -f portainer-agent-k8s.yaml 

在远程k8s集群上部署agent后,在Portainer server 上通过nodeport 或者 targetport 进行服务配置,完成k8s集群的连接配置。


LazyDocker
https://github.com/jesseduffield/lazydocker
LazyDocker是基于终端的一个可视化查询工具,支持键盘操作和鼠标点击。相比Portainer来说可能不那么专业,不过对于开发者来说可能反而更加好用了。因为一般开发者都是使用命令行来运行Docker,偶尔需要图形化查看的时候,就可以使用LazyDocker这个工具。
Lazydocker 的具体特性如下:
- 全视野查看 Docker 或 docker-compose 容器环境的状态
- 查看容器或服务的日志
- 查看容器指标的 ascii 图表,这样你会更像个开发者
- 自定义图表以测量不同指标
- 附加到容器/服务
- 重启、删除与重新构建容器/服务
- 查看给定镜像的祖先图层
- 修剪占用磁盘空间的容器、镜像或卷

安装LazyDocker也非常简单,运行下面的命令即可。
docker run --rm -it -v <br />/var/run/docker.sock:/var/run/docker.sock <br />-v ~/.config/lazydocker:/.config/jesseduffield/lazydocker <br />lazyteam/lazydocker
当然如果发现LazyDocker挺好用,准备经常使用的话,还可以把它做成缩写添加到shell配置文件中,这样就可以将它变成一个简单的命令。例如我用的是zsh,就将下面这样添加到.zshrc文件中。以后就可以直接用lzd来调用LazyDocker了。
echo "alias lzd='docker run --rm -it -v /var/run/docker.sock:/var/run/docker.sock -v ~/.config/lazydocker:/.config/jesseduffield/lazydocker lazyteam/lazydocker'" >> ~/.zshrc
然后就可以在终端中查看Docker容器、镜像和卷的信息了。LazyDocker支持键盘操作和鼠标点击,直接用鼠标点击就可以查看对应信息了
Docker Desktop
Docker Desktop 是 Docker 官方自带的客户端。https://docs.docker.com/desktop/windows/; 如果是windows用户,想在Windows系统上运行docker容器,可以使用;

小结
- Portainer 比较适合团队使用,因为他有访问控制。
- Lazydocker 属于简单灵活的小工具,如果你不需要复杂的功能,他们比较合适,而且会让你更有程序员的感觉。
- Docker Desktop 是 Windows/Mac 安装 Docker 时就有的,管理功能比较简单,在需要简单的集成 Kubernetes 时可以用他。
Docker-可视化管理工具总结-推荐使用Portainer的更多相关文章
- Docker可视化管理工具对比(DockerUI、Shipyard、Rancher、Portainer)
1.前言 谈及docker,避免不了需要熟练的记住好多命令及其用法,对于熟悉shell.技术开发人员而言,还是可以接受的,熟练之后,命令行毕竟是很方便的,便于操作及脚本化.但对于命令行过敏.非技术人员 ...
- [转帖]Portainer -- Docker可视化管理工具的安装配置及使用
原贴地址:https://blog.csdn.net/A632189007/article/details/78779920 Portainer介绍 Portainer是Docker的图形化管理工具, ...
- Docker可视化管理工具Portainer
Portainer介绍 Portainer是Docker的图形化管理工具,提供状态显示面板.应用模板快速部署.容器镜像网络数据卷的基本操作(包括上传下载镜像,创建容器等操作).事件日志显示.容器控制台 ...
- Docker可视化管理工具Shipyard安装与配置
Shipyard简介 Shipyard是一个集成管理docker容器.镜像.Registries的系统,它具有以下特点: 1.支持多节点的集成管理 2.可动态加载节点 3.可托管node下的容器 镜像 ...
- Portainer docker 可视化管理工具
1. 快速使用 docker run -d -p 9000:9000 portainer/portainer 2. docker swarm 模式 docker service create \ ...
- Docker可视化管理工具portainer的简单应用
portainer简介 略 安装portainer $ docker pull portainer/portainer$ docker volume create portainer_data $ d ...
- docker学习(三) 安装docker的web可视化管理工具
1.docker是一个一款很轻便的应用容器引擎,为了更好的管理和使用docker,使用web可视化管理工具似乎更符合大多数人的需求.在这里,我给大家分享下自己使用过的几款web工具:docker UI ...
- docker--docker 的web可视化管理工具
12 docker 的web可视化管理工具 12.1 常用工具介绍 当 Docker 部署规模逐步变大后,可视化监控容器环境的性能和健康状态将会变得越来越 重要. Docker的图形化管理工具,提供状 ...
- MongoDB 可视化管理工具
MongoDB 可视化管理工具 (2011年10月-至今) 正文 该项目从2011年10月开始开发,知道现在已经有整整5年了.MongoDB也从一开始的大红大紫到现在趋于平淡.MongoCola这 ...
随机推荐
- 聊一聊如何用C#轻松完成一个SAGA分布式事务
背景 银行跨行转账业务是一个典型分布式事务场景,假设 A 需要跨行转账给 B,那么就涉及两个银行的数据,无法通过一个数据库的本地事务保证转账的 ACID ,只能够通过分布式事务来解决. 市面上使用比较 ...
- 源码分析axios(1)~源码分析、模拟axios的创建
■ 查看源码发现,起初axios[instance=bind(Axios.prototype.request, context);]是一个函数, 但后续[ utils.extend(instance, ...
- AT2395 [ARC071C] TrBBnsformBBtion
基于观察,可以发现以下两条性质: A 可以到 BB,BB 也可以到 A,对 B <-> AA 也是同理的. 可以通过这两个操作交换相邻元素. 对于前者,只需证明 BB 可以到 A 即可,不 ...
- JS 函数提升&变量提升以及函数声明&函数表达式的区别
感谢原文作者:迟早会有猫 原文链接:https://www.cnblogs.com/SidselLoong/p/10515809.html 今天看js的变量提升问题,里面提到了函数提升.然后发现自己之 ...
- axios 之cancelToken原理以及使用
看axios文档的时候发现cancelToken这个东东,这个是用来取消ajax请求的,一般原生的话用的是abort()这个方法.看到这玩意的第一感觉是用起来有点麻烦,但是看了内部实现,发现还是比较有 ...
- 有关MVC设计模式 #DF
模型(Model).视图(View).控制器(Controller) -- MVC是 Cocoa 中的一种行为模块,并且也是所有 Cocoa 设计模式中使用最多的.在程序中按照它们的角色来分类这些对象 ...
- 利用redis+AOP简单处理MQ冥等问题
思路: 1.利用redis内部的串行执行特性,使用getandset()处理分布式问题; 2.注解提供入参选择,通过数据抽取后计算MD5值,实现业务性值的冥等: 代码区: 1.注解 1 /** 2 * ...
- springCloud项目解决跨域问题
通过 spring cloud gateway 实现, 方式一:选择在主启动类中注册 CorsWebFilter 类: /** * 1.允许cookies跨域 * 2.允许向该服务器提交请求的URI, ...
- WebGPU 中消失的 FBO 和 RBO
目录 1 WebGL 中的 FBO 与 RBO 1.1 帧缓冲对象(FramebufferObject) 1.2 颜色附件与深度模板附件的真正载体 1.3 FBO/RBO/WebGLTexture 相 ...
- Java读写文件常用方法
一.字符流:读写纯文本(txt,csv等), 1 字符流写文件主要用:FileWriter,BufferedWriter,PrintWriter 1.1 测试 FileWriter 写入 privat ...