Portainer实战
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://<REMOTE_HOST>:<REMOTE_PORT>
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"}]
},
]
验证
访问
http://172.31.68.241:9000/
登录
查看
容器信息
配置
之前说过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 <a href=\"https://www.cockroachlabs.com/docs/stable/orchestrate-cockroachdb-with-docker-swarm.html\" target=\"_blank\">CockroachDB documentation</a> 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来过滤
Portainer实战的更多相关文章
- 实战---在Portainer中编排docker-compose.yml文件
选择要部署容器的主机上,不用事先安装配置docker-compose 官方示例文档地址,2.0版本的:https://docs.docker.com/compose/compose-file/comp ...
- 6、Docker图形化管理(Portainer)
一.Portainer简介 Portainer是Docker的图形化管理工具,提供状态显示面板.应用模板快速部署.容器镜像网络数据卷的基本操作(包括上传下载镜像,创建容器等操作).事件日志显示.容器控 ...
- Docker实战总结
>>> 目录 <<< Docker简介 Docker优势 Docker基本概念 Docker安装使用 Docker常用命令 Docker镜像构建 Docker本地仓 ...
- 【新】Docker实战总结
>>> 目录 <<< Docker简介 Docker优势 Docker基本概念 Docker安装使用 Docker常用命令 Docker镜像构建 Docker本地仓 ...
- 使用Portainer集中管理多地域内网运行的Docker实例
1. 单机运行的Docker 容器化部署是现在进行时,开源应用大多数支持容器化部署 在少量机器的场景下往往采用docker cli 和 docker-compose管理,进行"单机式管理&q ...
- Elasticsearch数据库 | Elasticsearch-7.5.0应用搭建实战
Elasticsearch 是一个可用于分布式以及符合RESTful 风格的搜索和数据分析引擎.-- Elastic Stack 官网 搭建Elasticsearch的"那些事儿" ...
- SSH实战 · 唯唯乐购项目(上)
前台需求分析 一:用户模块 注册 前台JS校验 使用AJAX完成对用户名(邮箱)的异步校验 后台Struts2校验 验证码 发送激活邮件 将用户信息存入到数据库 激活 点击激活邮件中的链接完成激活 根 ...
- GitHub实战系列汇总篇
基础: 1.GitHub实战系列~1.环境部署+创建第一个文件 2015-12-9 http://www.cnblogs.com/dunitian/p/5034624.html 2.GitHub实战系 ...
- MySQL 系列(四)主从复制、备份恢复方案生产环境实战
第一篇:MySQL 系列(一) 生产标准线上环境安装配置案例及棘手问题解决 第二篇:MySQL 系列(二) 你不知道的数据库操作 第三篇:MySQL 系列(三)你不知道的 视图.触发器.存储过程.函数 ...
随机推荐
- vue中keep-alive,include的指定页面缓存问题
做vue项目时,有时要在某些页面做缓存,而其它页面不要.比如:A:首页,B:获取所有订单页面,C:订单详情页面:从A(首页)进入 B(获取所有订单)时应该不缓存,B(所有订单)进入 C(订单详情)订单 ...
- region、xld有对应的字符串时,将region、xld按照行或列排序的算法实现
用Halcon解码时,如果一张图里面有多个码,它通常可以把这些码都解出来,并且生成对应的解码结果字符串元组(也就是下面的DecodedDataStrings),如果有多个码,那么该元组就有多个元素. ...
- SQL常见的一些面试题(太有用啦)
SQL常见面试题 1.用一条SQL 语句 查询出每门课都大于80 分的学生姓名 name kecheng fenshu张三 语文 81张三 数学 75李四 ...
- PageRank网页价值算法
一.简介 PageRank是Google提出的算法,用于衡量特定网页相对于其它网页而言的重要程度.是Google创始人拉里.佩奇和谢尔盖.布林于1997年创造的,用于实现将链接价值概念作为排名的重要因 ...
- JS基础 浏览器弹出的三种提示框(提示信息框、确认框、输入文本框)
浏览器的三种提示框 alert() //提示信息框 confirm() //提示确认框 prompt() //提示输入文本框 1.alert( ) 提示信息框 <script> alert ...
- Python学习日记(三十五) Mysql数据库篇 三
使用Navicate 创建一个连接去使用Mysql的数据库,连接名可以取任意字符但是要有意义 新增一个数据库 填写新数据库名,设置它的字符集和排序规则 新建一个表 增加表中的信息 点击保存再去输入表名 ...
- Flask介绍及简单使用
Flask Django是一个大而全的框架,Flask是一个轻量级的框架. 区别: Django内部集成了大量的组件:请求处理是逐一封装和传递: Flask本身并没有太多的功能,但是第三方组件非常丰富 ...
- Docker04-镜像
目录 镜像介绍 获取镜像 案例:获取 redis 5.0.0的镜像 查询本地镜像 搜索镜像 删除镜像 案例:删除redis:latest镜像 镜像加速 镜像介绍 镜像是Docker的三大核心概念之一. ...
- H3C Short GI
- js正则表达式验证、匹配数字、匹配字符串、匹配中文、匹配任意字符备忘录
本文转自:91博客 :原文地址:http://www.9191boke.com/235792704.html 正则表达式或“regex”用于匹配字符串的各个部分,下面是我创建正则表达式的备忘录.包括一 ...