Portainer是一个可视化的容器镜像的图形管理工具
,利用Portainer可以轻松构建,管理和维护Docker环境。 而且完全免费,基于容器化的安装方式,方便高效部署。
Portainer 的主要用途与介绍
官网站点
Portainer 是一个用于管理容器化应用程序的开源工具。它在数据中心和边缘与Kubernetes、Docker、Docker Swarm、Azure ACI一起使用。
Portainer 消除了与编排器相关的复杂性,因此任何人都可以管理容器。它可用于部署和管理应用程序、观察容器的行为并提供广泛部署容器所需的安全性和治理。
Portainer Community Edition是一个轻量级的服务交付平台,可用于管理Docker、Swarm、Kubernetes和ACI环境的容器化应用。它被设计成部署和使用一样简单。该应用程序允许您通过智能GUI和/或广泛的API来管理所有协调器资源(容器、图像、卷、网络等)。Portainer由一个可以在任何集群上运行的容器组成。它可以部署为Linux容器,也可以部署为Windows本机容器。Portainer Business Edition构建在开放源码基础上,包括一系列高级特性和功能(如RBAC和Support),这些特性和功能专门针对业务用户的需求。
功能
✔ 支持多集群管理、清晰的仪表盘显示、内置很多应用模板。
✔ Docker功能(堆栈、服务、容器、镜像、网络、数据卷、配置)增删改查、使用状态监控等。
✔ 集群安全加密、多节点管理、用户角色控制、仓库列表、系统设置。
备注
:
用户权限控制、仓库镜像管理、外部认证这三个扩展功能是收费的,但总体功能较为强大,且持续维护中。
类似工具还有DockerUI(单机、功能简陋),Shipyard(功能较全、但Bug较多且早已停更),不推荐使用。
一般项目都是结合Jenkins实现快速部署,所以很多创建功能虽然比较全面,但还是用的比较少,主要用处还是监控。
部署
转载链接
Portainer由两个元素组成,即Portainer服务器
和Portainer代理
。这两个元素都在Docker引擎或Swarm集群中作为轻量级Docker容器运行。
由于Docker的性质,存在许多可能的部署方案,以下有三种方式选其一即可。
单机模式
最为简单,运行模式需要选择local。
docker run -d \
-p 9000:9000 \
--name prtainer-test \
--restart=always \
-v /opt/portainer:/data \
-v /var/run/docker.sock:/var/run/docker.sock \ # 单机方式必须指定
portainer/portainer
集群模式
可添加多节点,功能得到扩展较为全面。
docker swarm init
docker service create \
--name Portainer \
--publish 9000:9000 \
--constraint 'node.role == manager' \
--mount type=bind,src=/opt/portainer,dst=/data \
--mount type=bind,src=/var/run/docker.sock,dst=/var/run/docker.sock \
portainer/portainer \
-H unix:///var/run/docker.sock
node.role == manager # 限制仅在管理节点运行
/opt/portainer # 目录必须存在否则将集群将建立失败
[root@master ~]# docker service ls
ID NAME MODE REPLICAS IMAGE PORTS
hz4vms041v1e Portainer replicated 1/1 portainer/portainer:latest *:9000->9000/tcp
通过stack部署方式
[root@master ~]# vi docker-compose.yml
version: '3' # docker stack deploy 必须声明为3.0以上版本
services:
portainer: # 服务名
image: portainer/portainer # 基础镜像
ports: # 端口映射
- 9000:9000
volumes: # 数据卷挂载
- /opt/portainer:/data
- /var/run/docker.sock:/var/run/docker.sock
deploy: # 部署设置
mode: replicated
replicas: 1 # 单副本
placement:
constraints: # 约束
- node.role == manager
# 验证查看
[root@master ~]# docker stack deploy -c docker-compose.yml PIN
Creating network PIN_default
[root@master ~]# docker stack ls
NAME SERVICES ORCHESTRATOR
PIN 1 Swarm
[root@master ~]# docker stack ps PIN
ID NAME IMAGE NODE DESIRED STATE CURRENT STATE ERROR PORTS
kf36eddavzh5 PIN_portainer.1 portainer/portainer:latest master Running Running about a minute ago
汉化
进入Portainer文件夹,在容器启动的时候挂载进行即可!
cd /opt/portainer/ && wget https://labx.me/dl/4nat/public.zip
--mount type=bind,src=/opt/portainer/public,dst=/public
The quickest way to change yourself is to do the thing you fear the most!