Portainer 概述

Portainer 是 Docker 的图形化管理工具,portainer 通过连接 /var/run/docker.sock 文件去管理容器,可让你轻松管理不同的 Docker 环境 (Docker主机或Swarm群集)。Portainer 提供状态显示面板、应用模板快速部署、容器镜像网络数据卷、事件日志显示、容器控制台操作、登录用户管理和控制等功能。Docker 图形化管理界面有很多实现的工具,但生态一直不温不火,这是由于 Docker 的很多操作都是直接在命令行进行,再加上 Docker 的操作也比较简单。一般这样的图形化管理平台都是交给开发和测试人员去使用的

Portainer 安装

docker run -d -p 8000:8000 -p 9000:9000 --name "portainer" --restart=always \
-v /var/run/docker.sock:/var/run/docker.sock -v portainer_data:/data portainer/portainer    # 这里portainer通过连接/var/run/docker.sock文件去管理容器,所以需要把宿主机的docker.sock文件挂载到portainer

登录 Portainer 页面

Portainer 连接容器的方式

Local:管理 Portainer 所在主机上的 Docker 主机,需要将宿主机的 docker.sock 文件挂载到 Portainer 容器内

Remote:管理远程主机上的 Docker 主机,但是要开启远程的 Docker 主机的 Docker API,允许 Portainer 通过 TCP 连接

Agent:直接连接到在 Swarm 集群中运行的 Portainer 代理

Azure:连接到 Microsoft Azure

这里我们先使用 Local 的方式连接到 Portainer 所在的主机

Portainer 管理界面

通过下图可以看到 Portainer 提供了对容器、镜像、网络、数据卷、变量、主机的操作,App templates 是一些供我们下载的公共镜像,我们还可以看到正在运行的容器状态、日志、基于镜像、创建时间、映射端口等

Portainer 连接远程 Docker 主机

首先需要在远程 Docker 主机上开启 Docker API

vim /usr/lib/systemd/system/docker.service
ExecStart=/usr/bin/dockerd -H tcp://0.0.0.0:2375    # 表示所有地址都能连接到Docker API,也可以指定IP连接,默认端口是2375
systemctl daemon-reload
systemctl restart docker.service

然后在 Portainer 再创建一个连接远程 Docker 主机 API 的节点

这时候我们可以使用 Portainer 去管理本地和远程主机上的 Docker 资源了