前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Docker GUI工具-Portainer浅析

Docker GUI工具-Portainer浅析

作者头像
Luga Lee
发布2021-12-09 20:32:47
8680
发布2021-12-09 20:32:47
举报
文章被收录于专栏:架构驿站

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

Portainer具有以下优点:

1、支持容器管理、镜像管理。

2、轻量级,消耗资源少。

3、基于docker api,安全性高,可指定docker api端口,支持TLS证书认证。

4、支持权限分配、集群。

如果是针对中大型企业规模的业务需求,则可能需要对其进行2次开发,以满足实际的维护需求。

以下为其安装部署相关操作:

查看Portainer相关镜像源,当然,我们也可以基于源码进行编译制作。

代码语言:javascript
复制
[administrator@JavaLangOutOfMemory luga ]% docker search portainer
NAME                                DESCRIPTION                                     STARS     OFFICIAL   AUTOMATED
portainer/portainer                 This Repo is now deprecated, use portainer/p…   2010                 
portainer/portainer-ce              Portainer CE - Making Docker and Kubernetes …   284                  
portainer/agent                     An agent used to manage all the resources in…   87                   
portainer/templates                 App Templates for Portainer http://portainer…   20                   
lihaixin/portainer                  docker ui                                       15                   [OK]
greenled/portainer-stack-utils      Bash scripts to deploy/undeploy stacks in a …   6                    [OK]
portainer/portainer-k8s-beta        Portainer for Kubernetes BETA                   4                    
portainer/golang-builder            Utility to build Golang binaries.               4                    [OK]
portainerci/portainer               Portainer images automatically created via P…   4                    
hassioaddons/portainer                                                              2                    
portainer/base                      Multi-stage build image to create the Portai…   2                    [OK]
hassioaddons/portainer-armv7                                                        1                    
softonic/portainer-endpoint         Allows auto register all the swarm nodes in …   1                    [OK]
thibaudlabat/portainer_32           Portainer built for 32bit Linux [ OUTDATED ]…   1                    
iconviet/portainer                                                                  0                    
helloysd/portainer                                                                  0                    
11384eb/portainer                                                                   0                    
hassioaddons/portainer-amd64                                                        0                    
portainerci/agent                   Portainer agent images automatically created…   0                    
nenadilic84/portainer                                                               0                    
rancher/portainer-agent                                                             0                    
agiper/portainer                                                                    0                    
portainer/agent-k8s-beta            Portainer for Kubernetes BETA (agent)           0                    
portainer/portainer-ee              Portainer EE - Making Docker and Kubernetes …   0                    
johnvmt/portainer-ecr-credentials   Periodically updates the credentials Portain…   0                    [OK]

编写docker-compose.yaml文件,当然,也可以直接用Docker直接启动。

代码语言:javascript
复制
[administrator@JavaLangOutOfMemory luga ]% vi docker-compose-portainer.yaml
version: '3'
services:
  portainer:
    image: portainer/portainer:latest                             # 镜像名称
    container_name: portainer                                     # 容器名为'portainer'
    restart: always                                               # 指定容器退出后的重启策略为:始终重启
    volumes:                                                      # 数据卷挂载路径设置,将本机目录映射到容器目录
      - "/var/run/docker.sock:/var/run/docker.sock"
      - "./portainer/data:/data"
      - "./portainer/Portainer-CN:/public"   # 汉化
    environment:                        # 设置环境变量,相当于docker run命令中的-e
      TZ: Asia/Shanghai
      LANG: en_US.UTF-8
    ports:                              # 映射端口
      - "9000:9000"

执行启动命令,然后进行镜像的拉取,容器的运行。

代码语言:javascript
复制
[administrator@JavaLangOutOfMemory luga ]% docker-compose -f docker-compose-portainer.yaml up -d
WARNING: Found orphan containers (luga_kafdrop_1, luga_kafka_1) for this project. If you removed or renamed this service in your compose file, you can run this command with the --remove-orphans flag to clean it up.
Pulling portainer (portainer/portainer:latest)...
latest: Pulling from portainer/portainer
d1e017099d17: Pull complete
717377b83d5c: Pull complete
Digest: sha256:f8c2b0a9ca640edf508a8a0830cf1963a1e0d2fd9936a64104b3f658e120b868
Status: Downloaded newer image for portainer/portainer:latest
creating 3193e4c29d16_portainer ... done
代码语言:javascript
复制
[administrator@JavaLangOutOfMemory luga ]% docker ps
CONTAINER ID   IMAGE                        COMMAND        CREATED              STATUS              PORTS                    NAMES
7131347b2e5c   portainer/portainer:latest   "/portainer"   About a minute ago   Up About a minute   0.0.0.0:9000->9000/tcp   portainer

通过上述命令返回,发现已经成功启动,在此进行验证:

代码语言:javascript
复制
[administrator@JavaLangOutOfMemory luga ]% curl -i 192.168.1.12:9000
HTTP/1.1 200 OK
Accept-Ranges: bytes
Cache-Control: max-age=31536000
Content-Length: 23203
Content-Type: text/html; charset=utf-8
Last-Modified: Wed, 22 Jul 2020 22:47:36 GMT
X-Content-Type-Options: nosniff
X-Xss-Protection: 1; mode=block
Date: Sat, 16 Jan 2021 03:20:35 GMT

<!DOCTYPE html
><html lang="en" ng-app="portainer">
  <head>
    <meta charset="utf-8" />
    <title>Portainer</title>
    <meta name="description" content="" />
    <meta name="author" content="Portainer.io" />

    <!-- HTML5 shim, for IE6-8 support of HTML5 elements -->
    <!--[if lt IE 9]>
      <script src="//html5shim.googlecode.com/svn/trunk/html5.js"></script>
    <![endif]-->

    <!-- Fav and touch icons -->
    <link rel="apple-touch-icon" sizes="180x180" href="dc4d092847be46242d8c013d1bc7c494.png" />
    <link rel="icon" type="image/png" sizes="32x32" href="5ba13dcb526292ae707310a54e103cd1.png" />
    <link rel="icon" type="image/png" sizes="16x16" href="f9508a64a1beb81be174e194573f7450.png" />
    <link rel="mask-icon" href="07745d55b001c85826eedd479285cdbb.svg" color="#5bbad5" />
    ... ...

然后通过浏览器访问:http://192.168.1.12:9000

至此,Portainer.io已部署成功,接下来对其进行各种配置操作。此窗体主要显示连接的类型,此处为本地容器管理。平台支持远程、

首页包含Portainer管理平台所涉及的功能菜单,以及当前运行在此平台的容器、镜像、卷、网络总体以及资源概况。

容器列表显示当前平台所有容器的运行状态以及针对容器可执行的操作命令等。包含容器的启、停,新增,监控,日志查看,容器控制台等功能。

镜像窗体主要包含镜像详细查看、删除、导入、导出等功能。

除此之外,我们可以基于平台进行各种自定义的配置,以方便对资源集群的管理与维护。

其实,此平台挺不错的,针对一般的公司,容器规模不够完全庞大,无论是从技术的难易程度还是从可维护、可管理性角度来说,都是一个不错的选择,毕竟,可以对其进行定制开发。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-01-16,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 架构驿站 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
容器服务
腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档