Docker图形管理工具-Portainer

乡下的树 2020年01月10日 596次浏览

据我了解,目前Docker图形化管理工具常用的有三种:DockerUI 、Portainer 、Shipyard。每个工具都有自己的优缺点,但无论如何,都是通过docker api来获取管理的资源信息。在没有图形化管理工具的时候,我们通常是直接在命令行客户端敲命令执行,这种方式对于初学者来说是非常有帮助的,但终端的显示有时候会让人产生疲劳感。这也是为什么需要图形化管理工具。在这三个工具中,Shipyard官方已经停止更新维护,Portainer最为受欢迎,今天我们要使用的也是Portainer.

介绍:
Portainer是Docker的图形化管理工具,提供状态显示面板、应用模板快速部署、容器镜像网络数据卷的基本操作(包括上传下载镜像,创建容器等操作)、事件日志显示、容器控制台操作、Swarm集群和服务等集中管理和操作、登录用户管理和控制等功能。功能十分全面,基本能满足中小型单位对容器管理的全部需求。

主要功能

优势
提供状态显示面板:显示主机或者swarm集群上有多少镜像,容器、网络、数据卷等;
应用模板快速部署:可以使用预存的模板或者自己定制的模板快速部署;
镜像网络数据卷管理:通过页面进行管理和操作,例如构建镜像,增删数据卷等;
事件日志显示:对任何操作有记录,并且有页面可以显示审计日志;
容器控制台操作:查看容器,启停容器,查看容器占用的性能(内存,cpu等)
Swarm集群管理:可以管理swarm集群,是最大的优点;
登录用户管理:有完备的用户系统,权限控制(高级功能需付费);
缺点
1.Portainer没有自带的高可用,但是可以利用nfs等方式作高可用(其实这种管理平台也不是必定需要高可用)
2.Portainer没有中文页面,官方没有提供中文翻译,网上大神自己翻译的中文汉化包但是只能支持特定版本

1. 拉取镜像

下载镜像
#docker pull portainer/portainer
打标签
#docker tag  580c0e4e98b0  harbor.itdo.top/infra/portainer:latest
推送到本地harbor仓库上
#docker push  harbor.itdo.top/infra/portainer:latest

2. 创建并启动容器

#docker run -d --name portainerUI -p 9000:9000 -v /var/run/docker.sock:/var/run/docker.sock harbor.itdo.top/infra/portainer:latest
9d0c845d3973be400a121b1b8c64201f8bc8880a3f3369814f664cc2ed305b2b
检查运行状态
#docker ps | grep portainerUI
9d0c845d3973   harbor.itdo.top/infra/portainer:latest              "/portainer"             37 seconds ago   Up 37 seconds           0.0.0.0:9000->9000/tcp, :::9000->9000/tcp   portainerUI
检查日志
# docker logs 9d0c845d3973 
2022/01/29 08:19:53 Warning: the --template-file flag is deprecated and will likely be removed in a future version of Portainer.
2022/01/29 08:19:56 [ERROR] [http,client] [message: unexpected status code] [status_code: 403]
2022/01/29 08:19:56 [WARN] [exec,extensions] [message: unable to retrieve extensions manifest via Internet. Extensions will be retrieved from local cache and might not be up to date] [err: Invalid response status (expecting 200)]
2022/01/29 08:19:56 server: Reverse tunnelling enabled
2022/01/29 08:19:56 server: Fingerprint eb:02:3d:4c:23:37:91:b9:49:bf:41:10:cd:63:cb:72
2022/01/29 08:19:56 server: Listening on 0.0.0.0:8000...
2022/01/29 08:19:56 Starting Portainer 1.24.2 on :9000
2022/01/29 08:19:56 [DEBUG] [chisel, monitoring] [check_interval_seconds: 10.000000] [message: starting tunnel management process]

3. 访问
容器启动成功之后,通过浏览器访问http://ip:9000即可。首次访问会让你创建一个初始化的管理员用户,用户名默认为admin,密码至少8位。我们搭建的是单机版,直接选择Local,点击连接即可。
clipboard.png
连接成功之后,展示首页:
clipboard.png
主界面功能介绍

显示当前主机硬件资源和容器运行情况,当前 多少个堆栈数(Stacks),运行了 多少个容器(Containers)多少个存活 0 个停止、总共有 多少个镜像(Images) 、多少 个挂载卷和多少个网络设置。
右侧菜单分别为:
App Templates:App 的模板,内置 40 多个常用的服务模板,可以去更新这些,也可以删除。点击新建可以创建适合自己环境的模板,方便快速部署自己的服务。
Stacks:这里是制作自己的 docker compose 里的文件,可以创建自己的 docker compose 快速部署
Containers:管理的主机或者及集群的所有容器,点击需要管理的容器可以查看容器详细信息。进入详情也厚有对应的运维操作:Logs(查看日志),inspect(相当于 docker inspect,查看容器详细信息),Stats(查看容器占据的性能信息,包括占用的内存 CPU 等信息),Console(进入 docker 容器,相当于 exec),Attach(docker attach,不建议使用,也不好用)
Images:镜像操作,可以通过页面进行 pull 操作,可以查看机器上的所有镜像的详细信息,可进行大部分镜像操作(删除,build,import 导入)
Network:展现的是机器或者集群上 network 信息,在多机器 docker 维护中,经常需要创建维护 docker network。
Volume:Volume 就是机器上的数据卷信息,提供创建删除查看的操作。
Events:事件
Host:主机
clipboard.png

查看当前的所有容器:
clipboard.png
添加Remote Docker主机
主页界面,选择Endpoints-->Add endpoint-->Docker
注:Portainer连接其他docker的宿主机需要配置下docker,将docker的tcp远程连接方式打开。
操作如下:

#vim /usr/lib/systemd/system/docker.service
ExecStart=/usr/bin/dockerd-current \          
-H tcp://0.0.0.0:2375 -H unix://var/run/docker.sock \
重启docker
#systemctl daemon-reload
#systemctl restart docker

clipboard.png