zoukankan      html  css  js  c++  java
  • 安利一款云容器管理工具portainer……

    前言

    现如今,已经是万物上云的时代,除了我们经常听说的阿里云、腾讯云、华为云这些云供应商提供的云容器外,好多稍微有点规模的公司都搭建了自己的云环境,甚至连好多爱折腾的小伙伴在自己家里也搞上云环境,当然这些都说明和传统的部署环境相比,云环境更方便更友好,而用起来方便,更简单:一行命令安装mysqlrediszookeeper等,可以说基本上没有云环境搞定不了的事。

    但是随着云环境规模的不断扩大,容器越来越多,应用越来越多,这时候管理起来很不方便,而且好多小伙伴也不喜欢命令行的方式,有没有一款对用户友好,而且功能强大的管理工具?而且还要灵活方便,兼容性好、支持云环境?

    今天,我们安利的这一款工具——portainer,刚好满足你上面说的这些需求,接下来我们就来揭开它什么的面纱吧!

    portainer简介安装

    portainer是什么

    Portainer是一个通用的可视化容器管理工具。它可以与KubernetesDockerDocker SwarmAzure ACI完美融合。通过Portainer你可以可以轻松构建、管理和维护各类云环境。 而且它完全免费,又是基于容器化的安装方式,方便高效部署。

    portainer安装

    这里我们安装的是社区版(CE),社区版功能就够用了,企业版会提供一些增值服务,当然也是收费的,官网有社区版和商业版的对比,有兴趣的小伙伴自己去了解:

    https://www.portainer.io/products?hsCtaTracking=2a4560b0-6aef-49da-834f-ccbeb2083b59%7C4f0a8a27-01b4-4a5d-89a7-95434396f367
    

    本来打算给大家看下官网的文档,结果官方文档访问不到:

    点击install CE直接无法访问,不知道是被墙了,还是我网络的问题(难道移动宽带不让访问)

    image-20210515111152928

    手动安装

    既然官方文档看不了,那我们就手动安装吧。这里我们只演示docker环境的安装,其他环境我这里也没得。开始之前,你先要启动docker环境,这里吐槽下,win10环境的docker特别吃内存,还是linux更好,更原生一点。

    搜索资源

    一般在拉取资源前,我先会搜一下这个资源,然后选择start比较多的

    docker search portainer-ce
    

    拉取镜像资源

    第一个资源虽然星多,但是描述里面说仓库已经弃用了,过期了,所以就不考虑它了,另外我们前面也说了要拉portainer-ce,所以这里选择第二个资源

    docker pull portainer/portainer-ce
    

    由于我之前已经拉取资源了,所以显示会和你不一样。需要注意的是,如果你拉取资源特别慢,建议你修改下镜像地址,具体方法参考前面安装docker的内容:这样搭建本地开发测试环境,写代码美滋滋……

    创建卷文件

    volumesDocker管理宿主机文件系统的一部分,默认位于 /var/lib/docker/volumes 目录中。当然你也可以不创建卷文件,不创建的话,每次运行数据都会被清空

    docker volume create portainer_data
    
    启动
    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-ce
    

    启动成功会返回当前容器的id

    测试

    启动成功后,访问如下地址:

    http://localhost:9000/
    

    这里的端就是你上面-p配置的端口,前一个端口是你本地端口,后一个是docker容器中的端口。如果可以正常访问,说明启动是ok的。

    portainer配置

    修改密码

    第一次访问,会提示你修改admin的密码:

    密码长度必须大于等于8,然后点击create user

    在实际测试的时候,我发现创建用户的时候会报错,我以为是,没有创建卷文件:

    直到看到docker控制台的错误提示才明白,并不是:

    根据控制台提示信息,如果启动后5分钟内不创建管理账户,出于安全考虑,会自动关闭portainer

    配置要管理的容器

    再次启动portainer,重新创建管理账户就好了,然后会让你选择你的云容器环境:

    默认选中的是k8s,我们这里是docker,所以选择第一个:

    但是我在进行下一步的时候,没有创建volume的报应来了(这一次应该是这个问题了):

    我刚才没创建volume,好像还少了其他参数:

    docker run -d -p 8001:8000 -p 9001:9000 --name=portainer-test  portainer/portainer-ce
    

    先把-v /var/run/docker.sock:/var/run/docker.sock加上重新启动下看看(要删除容器,重新启动):

    docker run -d -p 8001:8000 -p 9001:9000 -v /var/run/docker.sock:/var/run/docker.sock --name=portainer-test  portainer/portainer-ce
    

    然后重新配置,点击connect,竟然成功了,说明vulume文件应该就只是持久化运行数据的,不影响启动运行。

    这时候就已经进入了portainer的首页了,左侧是菜单栏,右侧是容器列表,目前它只显示当前运行的容器,你也可以添加其他的容器。

    常用菜单

    下面我们简单看下常用的菜单选项

    Dashboard

    仪表盘,显示容器的预览信息,包括镜像数量、容器数量、卷文件数量、网络配置、栈文件等

    Containers

    容器管理,这个菜单是我们最常用的菜单之一,可以对我们已经创建的容器进行管理,包括启动、停止、删除、查看配置信息(端口、容器、创建时间)、查看日志等。

    新增容器

    这里需要说下新增容器,新增容器点开之后是这样的:

    redis为例创建一个容器
    基本参数配置

    第一部分包括指定容器名称,选择镜像,设置端口信息,访问控制设置等

    其他属性设置

    说实话,好到高级配置,我也没搞清楚

    发布容器

    点击Deploy the container发布,这个按钮太小了,有点不好找,在Actions下面。不过,不得不说,这个管理工具创建启动容器的时候确实太慢了,和命令行方式简直没法比,但是好在不用写命令,界面操作,对不了解docker的小伙伴比较友好。

    核心菜单

    右侧最上面的一排按钮,就是对容器进行管理的,启动、停止、强制关闭、重启、暂停、恢复(对于暂停的容器)、删除等操作都需要选中对应的容器进行操作。

    查看日志点击qucik actions下面的第一个小图标就可以了,容器的资源使用情况点击第三个,控制台点击第四个

    日志

    日志是实时滚动的,可以设置日志的滚动大小,默认100行,也就是显示最新的100行日志,支持将日志下载到本地(下载的大小就是你设置的大小),不想滚动,可以点击auto-refresh logs进行关闭。

    日志支持检索,如果你把你的项目(比如springboot)部署到容器中,你就可以直接在这里看日志了

    资源信息

    展示容器的内存、cpu、网络等信息,这里可以指定刷新时间,默认是5s

    控制台

    可以直接通过这里进入容器内

    当然对于没有控制台的容器,该选项点了也没反应,会显示闪退的情况,比如portainer自己的容器就是这样

    Images

    这里是管理当前云容器的镜像,包括拉取镜像、删除、导入、导出以及构建新镜像

    其他菜单暂时就不研究了,要么是太简单了,大家看一下就知道咋用,要么就过于复杂,我也没研究透,不过上面这几个已经够日常使用了,大部分的场景都是围绕这这几个菜单展开的。

    后面,等我搞清楚了docker部署springboot项目,我会再分享相关内容,今天就先到这里吧。

    总结

    portainer作为一款云环境管理工具,从整体体验来看,还是比较优秀的,操作比较友好,功能也比较齐全,而且很容易上手,目前我觉得唯一的缺点就是构建容器的时候有点慢。

    当然,就云容器而言,我接触的时间还比较短,而且目前我只用过docker,所以知识盲区比较大,可能说的好多点也不是很专业,但单从portainer流行情况来看,也能说明他很优秀,一个是技术圈推荐的人很多,一个是很多优秀的互联网公司都在用,比如我们公司,这就够说明问题。总之,就是一句话,你该学习了,要紧跟技术的方向,不断武装自己

  • 相关阅读:
    龙果支付系统
    Java并发多线程
    StringRedisTemplate常用操作
    统一支付平台转型
    IntValue()方法 和 ValueOf()方法
    Java中一些知识的归纳总结
    mybatis的一些特殊符号标识(大于,小于,等于,不等于)
    MySQL中大于等于小于等于的写法
    boost::bind应用示例
    VC除零异常(错误)捕获
  • 原文地址:https://www.cnblogs.com/caoleiCoding/p/14771595.html
Copyright © 2011-2022 走看看