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

Docker GUI 工具-Portainer 浅析

原创
作者头像
Luga Lee
修改2021-11-20 20:57:38
1.4K0
修改2021-11-20 20:57:38
举报
文章被收录于专栏:架构驿站架构驿站

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,进入如下页面。

Portioner 首页
Portioner 首页

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

Portainer 概览页
Portainer 概览页

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

Portainer Dashboard
Portainer Dashboard

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

容器列表页面
容器列表页面

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

镜像页面
镜像页面
第三方模版页面
第三方模版页面
Stacks 列表页面
Stacks 列表页面

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

设置页面
设置页面

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

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

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

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
容器镜像服务
容器镜像服务(Tencent Container Registry,TCR)为您提供安全独享、高性能的容器镜像托管分发服务。您可同时在全球多个地域创建独享实例,以实现容器镜像的就近拉取,降低拉取时间,节约带宽成本。TCR 提供细颗粒度的权限管理及访问控制,保障您的数据安全。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档