portainer 集群环境_Portainer实战

portainer 集群环境_Portainer实战Portainer 是一个轻量级的 Docker 环境管理 UI 可以管理 dockerhost 和 dockerswarm 我主要看中了能管理 swarm 这个 毕竟市面上能管理 swarm 的平台不多 之所以说是轻量级的 是因为部署只有一个 container 也可以使用二进制程序直接部署 不像 rancher 的部署 部署了一大堆 container 而且 portainer 是跨平台的 windows 和 linux 都可

Portainer是一个轻量级的Docker环境管理UI,可以管理docker host和docker swarm(我主要看中了能管理swarm这个,毕竟市面上能管理swarm的平台不多)。之所以说是轻量级的,是因为部署只有一个container,也可以使用二进制程序直接部署,不像rancher的部署,部署了一大堆container,而且portainer是跨平台的,windows和linux都可以部署,废话不多说,直接开干….

环境

ubuntu16.04-1

swarm manager

portainer

ubuntu16.04-2

swarm works

portainer agent

ubuntu16.04-3

swarm works

portainer agent

ps:环境还是之前文章的swarm集群环境

部署

独立容器启动

docker run -d -p 9000:9000 –name portainer –restart always -v /var/run/docker.sock:/var/run/docker.sock -v /path/on/host/data:/data portainer/portainer

ps:portainer的数据存储在容器内部的/data目录,这样容器重启的时候数据会丢失,所以要确保数据持久化

docker run -d -p 9000:9000 –name portainer –restart always -v portainer_data:/data portainer/portainer -H tcp://:

ps:-H 后面的remote是你想用portainert管理的docker

stack方式启动

下载启动stack文件

curl -L https://portainer.io/download/portainer-agent-stack.yml -o portainer-agent-stack.yml

以stack方式启动

docker stack deploy –compose-file=portainer-agent-stack.yml portainer

swarm service启动

docker service create \

–name portainer \

–publish 9000:9000 \

–replicas=1 \

–constraint ‘node.role == manager’ \

–mount type=bind,src=//path/on/host/data,dst=/data \

portainer/portainer

二进制启动

wget https://github.com/portainer/portainer/releases/download/1.19.2/portainer-1.19.2-linux-amd64.tar.gz

tar xvpfz portainer-1.19.2-linux-amd64.tar.gz

cd /opt/portainer

./portainer –template-file “${PWD}/templates.json”

ps:模板文件的内容下面会详细解释

[

{

“type”: 1,

“title”: “Registry”,

“description”: “Docker image registry”,

“categories”: [“docker”],

“platform”: “linux”,

“logo”: “https://portainer.io/images/logos/registry.png”,

“image”: “registry:latest”,

“ports”: [

“5000/tcp”

],

“volumes”: [{ “container”: “/var/lib/registry”}]

},

]

portainer 集群环境_Portainer实战

验证

访问

http://172.31.68.241:9000/

登录

portainer 集群环境_Portainer实战

查看

portainer 集群环境_Portainer实战

容器信息

portainer 集群环境_Portainer实战

配置

之前说过portainer可以以二进制程序直接部署,也可以在启动容器的时候直接在CLI设置参数,来修改portainer的默认行为,可使用的参数主要有如下:

–help 帮助

–version 查看版本信息

-p, –bind=”:9000″ 指定portainer监听的地址和端口

-a, –assets=”./” Path to the assets

-d, –data=”/data” 指定data数据目录

-H, –host=HOST Endpoint URL

–external-endpoints=EXTERNAL-ENDPOINTS

定义外部的endpoints

–no-auth 禁止portainer的认证

–no-analytics Disable Analytics in app

–tlsverify TLS support

–tlsskipverify Disable TLS server verification

–tlscacert=”/certs/ca.pem”

Path to the CA

–tlscert=”/certs/cert.pem”

Path to the TLS certificate file

–tlskey=”/certs/key.pem” Path to the TLS key

–ssl Secure Portainer instance using SSL

–sslcert=”/certs/portainer.crt”

Path to the SSL certificate used to secure the Portainer instance

–sslkey=”/certs/portainer.key”

Path to the SSL key used to secure the Portainer instance

–sync-interval=”60s” Duration between each synchronization via the external endpoints source

–snapshot Start a background job to create endpoint snapshots

–snapshot-interval=”5m” Duration between each endpoint snapshot job

–admin-password=ADMIN-PASSWORD

指定admin的password,是加密过后的,可以由htpasswd产生

–admin-password-file=ADMIN-PASSWORD-FILE

如果怕泄密,可以把密码写在一个文件中,这个里面是原始密码

-l, –hide-label=HIDE-LABEL …

隐藏具有某些标签的容器,-l可以多次使用

–logo=LOGO 使用你自己的logo

-t, –templates=TEMPLATES 或者直接指定一个url

–template-file=”/templates.json”

使用你自己的模板文件,默认的莫办文件位置在/templates.json

ps:关于admin密码,有的同学觉得cli和文件都不保险,则可以把密码设置在docker的secret中,如下:

$ echo -n mypassword | docker secret create portainer-pass –

$ docker service create \

–name portainer \

–secret portainer-pass \

–publish 9000:9000 \

–replicas=1 \

–constraint ‘node.role == manager’ \

–mount type=bind,src=/var/run/docker.sock,dst=/var/run/docker.sock \

portainer/portainer \

–admin-password-file ‘/run/secrets/portainer-pass’ \

-H unix:///var/run/docker.sock

模板

portainer中可以自定义一些模板,然后在portainer中创建容器的时候使用这些模块快速的创建,模板是json格式的,包含一些必选项和可选项。

Container template definition format

样例

{

“type”: 1,

“title”: “Nginx”,

“description”: “High performance web server”,

“logo”: “https://cloudinovasi.id/assets/img/logos/nginx.png”,

“image”: “nginx:latest”,

“ports”: [

“8080:80/tcp”,

“443/tcp”

]

}

解释

type必选项,1表示container,2表示swarm stack,3表示compose stack

title 必选项

description必选项

image必选项,该应用使用的docker镜像

administrator_only可选项,是否只有管理员可用模板

name可选项,该模板在管理界面中显示的名称

log可选项,自定义的logo

registry可选项,docker镜像的仓库,默认是Dockerhub

command可选项,容器里面运行的命令,如果没有指定,则默认运行dockerfile的command

network可选项,模板使用的网络

volumes可选项,模板使用的volume

ports 可选项,模板exposed的端口

labels 可选项,模板上定义的labels

privileged 可选项,容器是否能在超级权限启动

interactive 可选项,容器启动时是否是交互模式,即添加-i -t

restart_policy 可选项,容器的重启策略

hostname 可选项,容器的主机名

note 可选项,关于模板的信息

platform 可选项,支持的平台,一般是linux或者windows

categories 可选项,模板的类别,可以在UI上通过category来过滤

Stack template definition format

样例

{

“type”: 2,

“title”: “CockroachDB”,

“description”: “CockroachDB cluster”,

“note”: “Deploys an insecure CockroachDB cluster, please refer to CockroachDB documentation for production deployments.”,

“categories”: [“database”],

“platform”: “linux”,

“logo”: “https://cloudinovasi.id/assets/img/logos/cockroachdb.png”,

“repository”: {

“url”: “https://github.com/portainer/templates”,

“stackfile”: “stacks/cockroachdb/docker-stack.yml”

}

}

解释

type必选项,1表示container,2表示swarm stack,3表示compose stack

title 必选项

description必选项

registry可选项,docker镜像的仓库,默认是Dockerhub

administrator_only可选项,是否只有管理员可用模板

name可选项,该模板在管理界面中显示的名称

logo可选项,自定义的logo

env 可选项,定义模板的变量

note 可选项,关于模板的信息

platform 可选项,支持的平台,一般是linux或者windows

categories 可选项,模板的类别,可以在UI上通过category来过滤

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/205949.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月19日 下午4:49
下一篇 2026年3月19日 下午4:49


相关推荐

  • Markdown修改字体颜色

    Markdown修改字体颜色在写 blog 时 想高亮某些字 但是发现 markdown 更改字体颜色不像 word 里那么方便 于是查了一下 要用一下代码进行更改字体颜色 还可以更改字体大小 还有字体格式 font 更改语法你的内容 font 更改语法有 color 0099ff 更改字体颜色 face 黑体 更改字体 size 7 更改字体大小 fontface 黑体

    2026年3月16日
    2
  • 原创腾讯发布2024财报:净利润1940.7亿,同比大涨68%!增长主要来源什么业务?你贡献了多少

    原创腾讯发布2024财报:净利润1940.7亿,同比大涨68%!增长主要来源什么业务?你贡献了多少

    2026年3月13日
    1
  • torch.optim.lr_scheduler:调整学习率

    torch.optim.lr_scheduler:调整学习率本文是笔者在学习cycleGAN的代码时,发现其实现了根据需求选择不同调整学习率方法的策略,遂查资料了解pytorch各种调整学习率的方法。主要参考:https://pytorch.org/docs/stable/optim.html#how-to-adjust-learning-rate1综述torch.optim.lr_scheduler模块提供了一些根据epoch训练次数来调整学习率(…

    2025年8月18日
    7
  • nessus安装使用教程_kali linux全部功能教程

    nessus安装使用教程_kali linux全部功能教程一、Nessus介绍Nessus是目前全世界最多人使用的系统漏洞扫描与分析软件。总共有超过75,000个机构使用Nessus作为扫描该机构电脑系统的软件。提供完整的电脑漏洞扫描服务,并随时更新其漏洞数据库。Nessus专业版非免费的;家庭版是免费的,但单次任务只可以扫16个IP,这里注册的是家庭版,注册成功后会给邮箱发送一个激活码。二、安装下载家庭版https://www…

    2022年10月18日
    9
  • Python爬虫:逆向分析某酷音乐请求参数

    Python爬虫:逆向分析某酷音乐请求参数本篇博客通过对酷狗音乐的请求参数进行逆向分析,进而加深对逆向分析流程的理解。

    2022年6月19日
    36
  • windows怎么设置多用户_windows开启多用户远程桌面

    windows怎么设置多用户_windows开启多用户远程桌面在实际使用我们较多使用的都是windows系统的单用户模式,它意味着当我们登录一个用户的时候如果另外一个用户也在登录,那么就得等待另外一个用户退出后才可以登录我们这个用户,但是实际需求中,我们经常会遇

    2022年8月4日
    20

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号