1. Portainer简介

Portainer是一款开源的轻量级Docker容器镜像图形化管理工具,它基于Docker API,提供状态显示面板、应用模块快速布署、容器镜像基本操作(如上传/下载镜像、创建容器、停止容器、移除容器等)、日志显示等。开发者和运维人员可利用Portainer轻松构建、管理和维护Docker环境。

2. Portainer安装

2.1 搜索portainer镜像

如果已明确希望拉取的镜像名称,该步骤可忽略。如果不知道该下载哪些镜像,可通过docker search来搜索:

docker search portainer --limit 5 --no-trunc

其中,--limit 5表示只显示前5个搜索结果;--no-trunc表示显示完整的镜像描述。执行结果如下:

K3S容器可视化 容器可视化管理_服务器

2.2 拉取portainer镜像

从docker search结果中,选取合适的镜像,从镜像仓库拉取到本地。例如,我们要拉取portainer/portainer这个镜像,只需执行:

docker pull portainer/portainer

如果不指定镜像的TAG(或DIGEST),则默认拉取最新镜像。

K3S容器可视化 容器可视化管理_Docker_02

拉取成功后,可通过docker images命令确认最新镜像已在本地,如下图所示:

K3S容器可视化 容器可视化管理_Docker_03

2.3 运行portainer容器

运行以下脚本来启动portainer容器:

docker stop portainer
docker rm portainer
docker run -d --restart=always -p 9000:9000 --name=portainer -v /var/run/docker.sock:/var/run/docker.sock portainer/portainer

K3S容器可视化 容器可视化管理_K3S容器可视化_04

执行成功后,docker ps查看运行的docker容器,可以看到portainer已在运行:

K3S容器可视化 容器可视化管理_Docker_05

3. Portainer可视化管理

完成步骤2的安装、运行操作后,后续的布署均可在web端可视化操作。

3.1 可视化界面简介

在浏览器地址栏输入portainer运行的服务器地址和portainer端口号,例如192.168.10.100:9000,即可进入以下登录页面,首次登录需要创建用户名和密码。

K3S容器可视化 容器可视化管理_Docker_06

点击“Create user”后,跳转到如下页面:

K3S容器可视化 容器可视化管理_docker_07

选择Docker项,点击“Connect”,进入到Home页面,在该页面,可以看到当前服务器上容器的概况:容器数量、镜像数量、运行和停止的容器数量等。由于是单机版,因此只能看到一个group,见下图红框内部分。

K3S容器可视化 容器可视化管理_docker_08

点击该group,进入到Dashboard,如下图,可通过进入不同的项目,管理不同的内容。

K3S容器可视化 容器可视化管理_docker_09

例如要管理容器,可进入Containers项,在该页面,可看到服务器上容器的列表。可在该页面进行容器的添加、启动、停止、移除等操作,并可查看各容器的运行状态、Log、Inspect、Stats等信息。

K3S容器可视化 容器可视化管理_K3S容器可视化_10

3.2 容器可视化管理

由于不同的服务所需设置的参数不同,单纯依赖portainer可视化布署并不是一个明智的选择。建议首次布署时通过脚本一键布署,在后续的维护过程中,通过portainer进行一些可视化的操作,比如容器的启动、停止、容器服务log查看、容器状态查看与诊断等。

3.2.1 Portainer可视化布署示例

下面以一个需要调用GPU的算法服务,来说明单纯依靠可视化布署需要的一些设置步骤。

进入Add container界面,填写容器名称和镜像名称,如下图所示:

K3S容器可视化 容器可视化管理_服务器_11

接下来设置Command&logging,根据需要填写相应的参数。在本例中,必填项为“Command”和“Working Dir”。

K3S容器可视化 容器可视化管理_K3S容器可视化_12

设置Volumes,做主机与容器的目录映射,注意,容器目录在前,主机目录在后。目录映射时,选择“Bind”,见下图红框所示。

K3S容器可视化 容器可视化管理_docker_13

继续设置Network,本例中,docker服务直接复用主机的网络,所以选择host即可。

K3S容器可视化 容器可视化管理_docker_14

设置Restart policy,选择Always,程序异常退出后,自动拉起。

K3S容器可视化 容器可视化管理_服务器_15

设置Runtime,由于算法服务需要调用GPU,将Runtime设置为nvidia:

K3S容器可视化 容器可视化管理_Docker_16

设置好以上参数后,点击“Deploy the container”,启动容器。启动成功后,跳转到如下界面。若启动失败,页面右上角会提示启动失败原因。

K3S容器可视化 容器可视化管理_Docker_17

容器的配置参数可通过点击容器名进入该容器后,点击“Duplicate/Edit”选项查看并修改。

K3S容器可视化 容器可视化管理_docker_18

3.2.2 容器log查看

通过点击每个容器后面的Log图标可查看各容器的运行日志:

 

K3S容器可视化 容器可视化管理_Docker_19

本例中,日志界面如下图所示:

K3S容器可视化 容器可视化管理_docker_20

3.2.3 容器诊断

点击Quick actions的Inspect图标,可进入容器诊断界面。

K3S容器可视化 容器可视化管理_服务器_21

进入Inspect界面,可看到容器的详细信息。若容器意外退出,也可通过“State”项看到容器的当前状态及退出码。

K3S容器可视化 容器可视化管理_K3S容器可视化_22

3.2.4 容器资源占用查看

点击容器Quick actions的Stats图标,可进入容器资源占用可视化界面,如下图所示。通过该界面,可以较直观地看到一段时间以内的资源占用情况,从而判断容器是否健康运行以及可能存在的风险(如内存溢出等)。

K3S容器可视化 容器可视化管理_Docker_23