docker 部署 portainer(http)
===============================================
2019/4/30_第6次修改 ccb_warlock
更新说明:
2019/4/30:修改了local英文拼写错误的问题;
2019/4/16:修改了2.1创建目录不正确的问题;
2019/4/10:调整了docker、docker compose的部署方法的引用;
2019/4/6:优化了run、compose、stack的部署方式;
2018/8/3:删除2.1中无用的目录创建命令;
对2.2.2中对容器的资源限制进行扩容;
===============================================
部署完swarm(http://www.cnblogs.com/straycats/p/8978135.html)之后,寻找可以管理swarm的web系统方便管理,经过使用portainer可以满足对swarm的基本管理,而且该项目github上的收藏也较多。
一、前提
- 部署了docker(https://www.cnblogs.com/straycats/p/10680502.html)
- 部署了docker compose(https://www.cnblogs.com/straycats/p/10680769.html)
- 部署了swarm(https://www.cnblogs.com/straycats/p/8978135.html)
- 默认部署的服务器IP:192.168.12.11
- 对于管理swarm,将portainer部署在该swarm管理节点上(一个portainer管理多个主机(或swarm)没用过,估计是通过配置“endpoint”来实现,毕竟接触的业务量小还没经历多主机(集群)管理)
二、部署portainer
2.1 创建目录
mkdir -p /opt/compose/portainer
mkdir -p /usr/docker-vol/portainer/data
PS.由于方便持久化文件定位,这里使用目录映射而不是卷映射来做数据持久化
2.2 创建网络
# 本地用的network
docker network create \
--driver=bridge \
--subnet=172.11.0.0/16 \
--ip-range=172.11.0.0/16 \
--gateway=172.11.0.1 \
--attachable \
local-net
# swarm用的network
docker network create \
--driver=overlay \
--subnet=172.12.0.0/16 \
--ip-range=172.12.0.0/16 \
--gateway=172.12.0.1 \
--attachable \
swarm-net
2.3 创建portainer容器
2.3.1 run方式
# 创建容器portainer
docker run -d \
--name portainer \
-v /var/run/docker.sock:/var/run/docker.sock \
-v /usr/docker-vol/portainer/data:/data \
-p 9000:9000 \
--network local-net \
--cpus 0.5 \
--memory 200M \
--restart on-failure \
portainer/portainer
PS.如果需要移除该容器,可以使用命令
docker stop portainer
docker rm portainer
2.3.2 compose方式
# 编辑docker-compose.yml
vi /opt/compose/portainer/docker-compose.yml
将下面的内容添加到docker-compose.yml内,wq保存。
version: '3'
services: portainer:
image: portainer/portainer
volumes:
- /var/run/docker.sock:/var/run/docker.sock
- /usr/docker-vol/portainer/data:/data
ports:
- 9000:9000
networks:
- local-net networks:
local-net:
external: true
# 创建容器portainer
cd /opt/compose/portainer
docker-compose up -d
PS.如果需要移除该compose文件创建的所有容器,可以使用命令
cd /opt/compose/portainer
docker-compose down
2.3.3 stack方式
# 编辑portainer-stack.yml
vi /opt/compose/portainer/portainer-stack.yml
将下面的内容添加到portainer-stack.yml内,wq保存。
version: '3.4'
services: portainer:
image: portainer/portainer
volumes:
- /var/run/docker.sock:/var/run/docker.sock
- /usr/docker-vol/portainer/data:/data
deploy:
placement:
constraints: [node.role == manager]
replicas: 1
restart_policy:
condition: on-failure
resources:
limits:
cpus: "0.5"
memory: 200M
update_config:
parallelism: 1
delay: 5s
monitor: 10s
max_failure_ratio: 0.1
order: start-first
ports:
- 9000:9000
networks:
- swarm-net networks:
swarm-net:
external: true
# 创建portainer-stack
cd /opt/compose/portainer
docker stack deploy -c portainer-stack.yml portainer-stack
PS.如果需要移除该stack创建的所有service,可以使用命令
docker stack rm portainer-stack
三、配置portainer
3.1 访问页面
浏览器访问 https://192.168.12.11:9000
填写8位以上密码,创建管理员用户。进入系统后可以再修改8位以内的密码。(某个版本更新后改成了8位以上的要求,坑啊)

选择“Local”,点击“Connect”。

3.2 添加镜像仓库
为了方便部署,swarm可以通过portainer的stacks来部署容器,故需要配置需要拉取的镜像仓库。
左侧导航栏选择“Registries”,点击“Add registry”,填写镜像仓库的名称、URL、管理员的账号/密码。

由于拉取的仓库是我内部搭建的私有仓库,故选择“Custom registry”,填写仓库信息。

参考资料:
1.https://www.portainer.io/installation/
docker 部署 portainer(http)的更多相关文章
- Docker 部署 portainer
Docker 部署 portainer 环境: docker 版本 :18.09.1 主机地址:192.168.1.81 一.部署 porttainer 1.修改docker配置文件,开放端口. vi ...
- Docker部署Portainer搭建轻量级可视化管理UI
1. 简介 Portainer是一个轻量级的可视化的管理UI,其本身也是运行在Docker上的单个容器,提供用户更加简单的管理和监控宿主机上的Docker资源. 2. 安装Docker Doc ...
- Ubuntu下部署Portainer管理docker
在上一篇文章中,我们部署了Shipyard来管理docker集群,总体比较简单,而且Shipyard界面风格很简约,还是比较喜欢的,但是正如提出的node节点无法显示bug,以及该项目早已停止维护,让 ...
- 二、Docker部署应用
一.有关Docker的安装请参考docker官网 Docker 提供了两个版本:社区版 (CE) 和企业版 (EE). Docker 社区版 (CE) 是开发人员和小型团队开始使用 Docker 并 ...
- Docker(二十四)-Docker使用Portainer搭建可视化界面
Portainer介绍 Portainer是Docker的图形化管理工具,提供状态显示面板.应用模板快速部署.容器镜像网络数据卷的基本操作(包括上传下载镜像,创建容器等操作).事件日志显示.容器控制台 ...
- Linux下Docker以及portainer相关配置
一.安装使用Docer CE 本文以CentOS 7为例,安装docker CE版本,docker有两种版本,社区版本CE和企业版本EE,此处学习研究以CE版本为例, 两种安装方式可选:1.使用yum ...
- docker 的Portainer和Dive
Portainer Portainer是Docker的图形化管理工具,提供状态显示面板.应用模板快速部署.容器镜像网络数据卷的基本操作(包括上传下载镜像,创建容器等操作).事件日志显示.容器控制台操作 ...
- Docker搭建Portainer
1.介绍 Docker 图形化管理提供了很多工具,有Portainer.Docker UI.Shipyard等等,本文主要介绍Portainer. Portainer是一个开源.轻量级Docker管理 ...
- Docker使用Portainer搭建可视化界面
Portainer介绍 Portainer是Docker的图形化管理工具,提供状态显示面板.应用模板快速部署.容器镜像网络数据卷的基本操作(包括上传下载镜像,创建容器等操作).事件日志显示.容器控制台 ...
随机推荐
- Tengine,轻量级Web服务器
阿里妹导读:Tengine,轻量级Web服务器,基于Nginx进行开发,针对大访问量网站的需求,新增了很多高级功能和特性.比如,Tengine兼容Nginx的所有配置,并且增加了独立进程框架.页面优化 ...
- Java应用中使用ShutdownHook友好地清理现场
在线上Java程序中经常遇到进程程挂掉,一些状态没有正确的保存下来,这时候就需要在JVM关掉的时候执行一些清理现场的代码.Java中得ShutdownHook提供了比较好的方案. JDK在1.3之后提 ...
- 用Python实现的数据结构与算法:基本搜索
一.顺序搜索 顺序搜索 是最简单直观的搜索方法:从列表开头到末尾,逐个比较待搜索项与列表中的项,直到找到目标项(搜索成功)或者 超出搜索范围 (搜索失败). 根据列表中的项是否按顺序排列,可以将列表分 ...
- .net 控件开发常见的特性总结
http://blog.csdn.net/aofengdaxia/article/details/5924364 在.net开发中常常需要使用一些[]里面的特性描述,我发现对常用的几个知道大概的意思, ...
- 个人在 laravel 开发中使用到的一些技巧(持续更新)
1.更高效率地查询:使用批量查询代替 foreach 查询(多次 io 操作转换为一次 io操作) 如果想要查看更详尽的介绍,可以看看这篇文章 什么是 N+1 问题,以及如何解决 Laravel 的 ...
- python基础之函数进阶之函数作为返回值/装饰器
因为装饰器需要用到返回函数的知识,所以在这里将返回函数和装饰器合并讲解. 什么是返回函数? 我们知道,一个函数中return可以返回一个或者多个值,但其实,return不仅可以返回值,还可以返回函数. ...
- tf.nn.conv2d 参数介绍
tf.nn.conv2d是TensorFlow里面实现卷积的函数,参考文档对它的介绍并不是很详细,实际上这是搭建卷积神经网络比较核心的一个方法,非常重要 tf.nn.conv2d(input, fil ...
- MVVM模式原则
1.MVVM简介 这个模式的核心是ViewModel,它是一种特殊的model类型,用于表示程序的UI状态.它包含描述每个UI控件的状态的属性.例如,文本输入域的当前文本,或者一个特定按钮是否可用.它 ...
- Hi35xx 通用GPIO 使用篇(板子3G电源控制脚说明)
在一个嵌入式系统中使用最多的莫过于 通用输入输出 GPIO口.看到论坛中经常有朋友问海思为什么没有提供GPIO驱动.其实不然. 在海思SDK xxx/osdrv/tools/board_tools/ ...
- windows环境下批处理实现守护进程
这个脚本提供两种方式守护,一种是通过进程名,但对于进程名都是java.exe的java程序不适用,另一种是通过netstat查找应用程序所监听的端口是否正在被监听.这两种方式可以在脚本中通过两个冒号注 ...