===============================================

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上的收藏也较多。


一、前提


二、部署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/

最新文章

  1. Android——使用SQLiteDatabase操作SQLite数据库
  2. WinCE6.0多国语言软键盘
  3. 关于Eclipse项目中加入jquery.js文件报错(missing semicolon)问题
  4. es6新特性
  5. SRV记录说明
  6. [AngularJS] Directive using another directive by 'require'
  7. Delphi XE2 升级项目编译ralease版本,无法添加UAC解决方法
  8. Oracle 11g的安装详细过程
  9. UE4中FString转UTF8及UTF8转FString
  10. 对于 @Autowired注解和@service注解的理解
  11. 乐观的并发策略——基于CAS的自旋
  12. 使用float属性的一些小技巧
  13. TensorFlow练习13: 制作一个简单的聊天机器人
  14. Java 并发编程-NIO 简明教程
  15. Socket构造但不连接
  16. LCA最近公共祖先模板代码
  17. koa : Express出品的下一代基于Node.js的web框架
  18. Passenger简介
  19. java poi 合并单元格
  20. 卸载CocoaPods

热门文章

  1. BZOJ 4898 [APIO2017] 商旅 | SPFA判负环 分数规划
  2. Codeforces Good Bye 2018
  3. bzoj4035【HAOI2015】数组游戏
  4. 使用EntitysCodeGenerate
  5. OpenStack 认证服务 KeyStone部署(三)
  6. Pycharm远程连接服务器,并在本地调试服务器代码
  7. 数据库sharding系列好文收藏
  8. bzoj千题计划164:bzoj5123: 线段树的匹配
  9. 2008ZJOI树的统计
  10. pandas基础整理