一.介绍

Portainer是个轻量级的Docker管理面板,和Rancher这种重量级选手没法比,Portainer倾向于单机的管理(后来发现能够添加多个单机节点切换着管理),当然,在Docker搞出Swarm之后Portainer也借此实现了集群管理。

使用官方提供的Demo预览一下

地址: http://demo.portainer.io/

用户名: admin

密码: tryportainer

你会有一种眼前一亮的感觉,美观,而且功能全面(从边上这一长列就能感受出来)

虽然选项很多,但是其实就是命令行操作的简化,如果你用过Docker的命令行操作你能很快熟悉Portainer,和Rancher那种多了很多新花样不一样,Rancher的很多东西你看上去是摸不着头脑的,必须看着文档试一下才能大概弄清楚这是个啥。

二.安装

是不是眼馋了?那么就让我们装一下玩玩吧。

这是Portainer对Docker各版本的支持情况

Portainer的安装方式主要有两种,一个是使用Docker安装,一个是二进制文件直接跑,我建议用Docker安装,比较方便点,也不用你自己去配置自启动啥的。

其他的请参考官方文档 ——> 传送门

首先,我们得先把Unix套接字或者TCP监听打开,来方便连接(不过似乎Unix套接字默认是启用的,TCP需要自己开)

PS.这儿请务必注意,不能直接配0.0.0.0,因为如果不做ACL或者TLS认证会导致你的Docker被人扫到后直接控制,有可能被远程创建挖矿容器

先确认你的机器中是否存在/etc/sysconfig/docker这个配置文件,如果存在的话请修改,在其中的配置选项中加入如下内容

#这个仅允许本地连接,如果要远程的话改成0.0.0.0,但是如果是公网中远程请你自己配TLS认证或者防火墙加白名单
-Htcp://127.0.0.1:2375 -H unix:///var/run/docker.sock
1
2
#这个仅允许本地连接,如果要远程的话改成0.0.0.0,但是如果是公网中远程请你自己配TLS认证或者防火墙加白名单
-Htcp://127.0.0.1:2375 -H unix:///var/run/docker.sock

但是,很多情况下我们会不存在这个文件(较高版本的Docker不会自动创建这个),所以我们可以选择另外一种方法,参照Docker文档——>传送门

vi /etc/docker/daemon.json
#添加如下,这个仅允许本地连接,如果要远程的话改成0.0.0.0,如果添加的不在最后一行请在末尾加上逗号
"hosts": ["tcp://127.0.0.1:2375", "unix:///var/run/docker.sock"]
#如果deamon.json不存在请添加完整的json格式
{
"hosts": ["tcp://127.0.0.1:2375", "unix:///var/run/docker.sock"]
}
1
2
3
4
5
6
7
vi /etc/docker/daemon.json
#添加如下,这个仅允许本地连接,如果要远程的话改成0.0.0.0,如果添加的不在最后一行请在末尾加上逗号
"hosts": ["tcp://127.0.0.1:2375", "unix:///var/run/docker.sock"]
#如果deamon.json不存在请添加完整的json格式
{
"hosts": ["tcp://127.0.0.1:2375", "unix:///var/run/docker.sock"]
}

虽然其实你修改启动脚本在dockerd命令之后添加 -H unix:///var/run/docker.sock -H tcp://127.0.0.1 也可以,但是这样终归不怎么优雅。

准备工作做完,然后开始安装,使用Docker安装有三种连接方式

首先是全部都需要做的操作,添加一个数据卷,当然你也可以在docker run的时候手动指定数据挂载路径,效果是一样的,将下面docker run命令中的portainer_data换成宿主机上的具体路径就OK

docker volume create portainer_data
1
docker volume create portainer_data

1. 使用Unix套接字连接单个Docker(本地)

docker run -d -p 9000:9000 -v /var/run/docker.sock:/var/run/docker.sock -v portainer_data:/data portainer/portainer
1
docker run -d -p 9000:9000 -v /var/run/docker.sock:/var/run/docker.sock -v portainer_data:/data portainer/portainer

2. 使用TCP方式连接单个Docker(本地或远程)

#如果连接的是远程的docker,请把ip换掉(如果你改了dockerd监听的默认端口也记得修改2375)
docker run -d -p 9000:9000 portainer/portainer -H tcp://127.0.0.1:2375
1
2
#如果连接的是远程的docker,请把ip换掉(如果你改了dockerd监听的默认端口也记得修改2375)
docker run -d -p 9000:9000 portainer/portainer -H tcp://127.0.0.1:2375

3. 使用Unix套接字或TCP连接Swarm集群(本地或远程)

docker run -d -p 9000:9000 portainer/portainer -H tcp://SWARM集群管理IP:2375
1
docker run -d -p 9000:9000 portainer/portainer -H tcp://SWARM集群管理IP:2375

下面这个算是另外一种了,是将Portainer以服务的形式部署在集群中,似乎也可以借助Swarm来实现HA?

docker service create \
--name portainer \
--publish 9000:9000 \
--replicas=1 \
--constraint 'node.role == manager' \
--mount type=bind,src=//var/run/docker.sock,dst=/var/run/docker.sock \
--mount type=bind,src=//opt/portainer,dst=/data \
portainer/portainer \
-H unix:///var/run/docker.sock
1
2
3
4
5
6
7
8
9
docker service create \
--name portainer \
--publish 9000:9000 \
--replicas=1 \
--constraint 'node.role == manager' \
--mount type=bind,src=//var/run/docker.sock,dst=/var/run/docker.sock \
--mount type=bind,src=//opt/portainer,dst=/data \
portainer/portainer \
-H unix:///var/run/docker.sock

第一次访问会让你创建账号

然后选择连接的是本地还是远端的Docker

全部设置完后我们就能进去了,新建容器的操作也很友好

感觉还是挺棒的,至于Swarm的我就不说啥了,之后估计还有专门讲Swarm基本使用的文章,可以关注下。

Tags: docker, docker管理面板, portainer

Docker管理面板系列——Portainer的更多相关文章

  1. Docker管理面板-URLOS(易用、高效、强大)

    一.介绍 URLOS是一个Docker管理面板,它把服务器端软件应用的安装行为简化到极致,堪称服务器端的应用宝,具有集群管理.自动故障转移.自动负载均衡等高级功能,可轻易搭建7*24小时在线的网站运行 ...

  2. Docker管理面板Crane开源了!

    导读 数人云容器管理面板 Crane 开源啦!Crane 包含着数人云工程师对 Docker 最新技术的热爱和实践.希望借助开源社区的力量,让 Crane 完善自身,更好地成长起来,让更多的国内用户体 ...

  3. Docker 一键安装及Docker管理面板Portainer中文汉化

       前言 Docker接触了一段时间了,批量操作过程中感觉太繁琐,所以找到了好评率比较高的Portainer面板,使用后感觉的确不错所以准备拿出来精力来做个汉化版,过程中发现词条非常多,所以暂时先汉 ...

  4. Docker管理工具之portainer

    参考:https://www.cnblogs.com/frankdeng/p/9686735.html 1. 查询portainer镜像 命令:docker search portainer 实例: ...

  5. 安装 docker管理 工具 页面 portainer

    sudo docker run -d -p 7998:9000 -v /var/run/docker.sock:/var/run/docker.sock -v portainer_data:/data ...

  6. Docker(41)- Portainer 可视化面板安装

    Portainer docker run -d -p 8080:9000 \ --restart=always -v /var/run/docker.sock:/var/run/docker.sock ...

  7. Docker 管理工具 Portainer部署

    Docker 管理工具 Portainer部署 一.官网 官网:http://www.portainer.io 演示地址:http://demo.portainer.io 用户名:admin 密码:t ...

  8. Kubernetes(k8s)集群部署(k8s企业级Docker容器集群管理)系列目录

    0.目录 整体架构目录:ASP.NET Core分布式项目实战-目录 k8s架构目录:Kubernetes(k8s)集群部署(k8s企业级Docker容器集群管理)系列目录 一.感谢 在此感谢.net ...

  9. Kubernetes(k8s)集群部署(k8s企业级Docker容器集群管理)系列之集群部署环境规划(一)

    0.前言 整体架构目录:ASP.NET Core分布式项目实战-目录 k8s架构目录:Kubernetes(k8s)集群部署(k8s企业级Docker容器集群管理)系列目录 一.环境规划 软件 版本 ...

  10. Kubernetes(k8s)集群部署(k8s企业级Docker容器集群管理)系列之自签TLS证书及Etcd集群部署(二)

    0.前言 整体架构目录:ASP.NET Core分布式项目实战-目录 k8s架构目录:Kubernetes(k8s)集群部署(k8s企业级Docker容器集群管理)系列目录 一.服务器设置 1.把每一 ...

随机推荐

  1. 思维导图学《Java性能权威指南》

    目录 性能测试 Java 性能调优工具箱 JIT 编译器 垃圾收集 原生内存 线程与同步的性能 Java API 技巧 GitHub LeetCode 项目 目录 YANO SPACE 2021 计划 ...

  2. NVM及NODE开发环境搭建

    NVM及NODE开发环境搭建 1. 安装NVM 1.1 下载安装包 下载地址 1.2 安装 双击安装包,一路下一步即可.安装完成后在终端输入nvm version,能查到版本号说明安装成功了. 2. ...

  3. 记录使用socket.io的使用

    今天记录一下node.js的egg框架搭建的socket.io,前端联合使用 首先得引入socket.io的js,我这边是用的下载到本地的一个js 引入:const io = require('../ ...

  4. C# 给当前程序创建桌面快捷方式

    C# 给当前程序创建桌面快捷方式 //by wgscd //date 2024-10-22 using System; using System.Reflection; using System.IO ...

  5. Apollo架构设计

    Apollo架构设计 Apollo有一点很好,就是它是由国内携程团队开发,而且文档写的很全,代码也完全开源.如果去了解它也可以直接去看它的官方文档. 一.配置中心概念 1.背景 在实际开发中都会与配置 ...

  6. C:条件编译

    问题 #ifdef HELIB_DEBUG long pa, pb; std::vector<long> slots; decryptBinaryNums(slots, a, *dbgKe ...

  7. 「CF1101F」Trucks and Cities

    题意描述 有 \(N\) 座城市,第 \(i\) 座坐标为 \(a_i\) ,有 \(M\) 辆卡车,第 \(i\) 辆卡车要从城市 \(s_i\) 前往城市 \(e_i\) ,每单位长度耗油量为 \ ...

  8. ORACLE 分页和行限制

    行限制:示例 (此语法从12C版本开始支持) 以下语句返回具有最低employee_id值的 5 名员工: SELECT employee_id, last_name FROM Employees O ...

  9. RocketMQ实战—4.消息零丢失的方案

    大纲 1.全链路分析为什么用户支付完成后却没有收到红包 2.RocketMQ的事务消息机制实现发送消息零丢失 3.RocketMQ事务消息机制的底层实现原理 4.是否可以通过同步重试方案来代替事务消息 ...

  10. Docker 持续集成部署+ELK日志相关等 完美实践

    docker(ubuntu) 卸载docker # 卸载(如有) for pkg in docker.io docker-doc docker-compose docker-compose-v2 po ...