在上一篇文章中,我们部署了Shipyard来管理docker集群,总体比较简单,而且Shipyard界面风格很简约,还是比较喜欢的,但是正如提出的node节点无法显示bug,以及该项目早已停止维护,让我不得不在另寻可靠的工具。搜索发现,Portainer是一个轻量级的管理工具,很符合的要求。

首先,我们还是要安装docker,这一步不再赘述。然后按以下步骤安装Portainer,非常简单。

主节点

安装swarm

docker pull swarm

# 创建集群
docker swarm init --advertise-addr <MANAGER-IP>

这一步完成时显示如下:

它显示了加入工作节点的办法。到这里,主节点就配置完成,它会默认加入本地节点。

部署Portainer

sudo docker service create \
--name portainer \
--publish 9000:9000 \
--constraint 'node.role == manager' \
--mount type=bind,src=/var/run/docker.sock,dst=/var/run/docker.sock \
portainer/portainer \
-H unix:///var/run/docker.sock

工作节点

工作节点就按照上一步中给出的办法,加入新节点:

sudo docker swarm join --token SWMTKN-1-4zzd3zwswlix4hmxf68byzf3bds5sed2qtqgm1uao9g48tge61-9hu7w2cle8ic55ntnmqlzwuoi 192.168.56.103:2377



PS:注意,加入新的manager节点和worker节点都是相同的命令,但是token不一样。可以通过命令查询token:

docker swarm join-token worker/manager

如果想旧令牌无效并生成新令牌:

docker swarm join-token --rotate

这时在主节点上就可以看到各个节点的信息:

WEB访问

默认对外曝露9000端口,因此你只需访问http://<MANAGER-IP>:9000 就能够访问web端页面。第一次访问需要你创建用户和密码。

总体看,配置非常简单,而且占用的资源非常少。


其实按照创建服务的方法来部署Portainer会存在一个问题就是,它每次重启都会重新挂载一个临时目录,导致需要重复配置账号。为了解决这个问题,也为了能够同时监控多个集群,我们换一种方式。

首先需要曝露docker的2375端口:

# 备份
sudo cp /lib/systemd/system/docker.service /lib/systemd/system/docker.service.bak

然后编辑/lib/systemd/system/docker.service

ExecStart=/usr/bin/dockerd -H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock  --containerd=/run/containerd/containerd.sock

然后重启docker:

systemctl daemon-reload

systemctl restart docker

然后创建一个非临时的volum给Portainer使用:


sudo docker volume create portainer_data

然后采用普通容器的方式部署Portainer:

sudo docker run -d -p 9000:9000 --name portainer --restart=always  -v /var/run/docker.sock:/var/run/docker.sock -v portainer_data:/data portainer/portainer

这样就ok了。

登录后,选择remote,里面Endpoint URL 设为你想要监控的swarm所在主机的ip:2375即可连接,并且在左侧菜单的Endpoints中可以继续添加,从而达到一个控制台管理多个集群的目的。

Ubuntu下部署Portainer管理docker的更多相关文章

  1. Ubuntu下部署Shipyard管理docker

    使用k8s对于我这种新人来说,难度有点大.遂尝试使用Shipyard这个docker web ui工具来进行管理,以方便入门. 首先,我们还是需要在我们的主机上安装docker. 然后官方提供了自动安 ...

  2. 在ubuntu上部署Kubernetes管理docker集群示例, vxlan,gre

    http://www.chenshake.com/openstack-folsom-guide-for-ubuntu-12-04/ http://www.cnblogs.com/sammyliu/p/ ...

  3. Ubuntu 下部署asp.net运行环境

    在Ubuntu下部署asp.net运行环境,网上教程很多,基本都是编译Mono源码,然后安装jexus.但是可能是我最近RP不太好,编译Mono源码一直都是失败,无奈之下只好找另外的方法安装了. 网上 ...

  4. Linux:Ubuntu下部署Web运行环境

    Linux:Ubuntu下部署Web运行环境 本次博客将会从三部分内容详述Ubuntu系统下Web运行环境的配置: 依次是:FTP服务器的搭建.MYSQL数据库的搭建.JDK的安装等. 参考文章如下: ...

  5. Docker环境下的前后端分离项目部署与运维(十二)使用Portainer管理Docker

    安装 docker hub地址:https://hub.docker.com/r/portainer/portainer/ # 每台服务器都要安装 docker pull portainer/port ...

  6. windows 下部署 .netcore 到 docker

    前面我们演示了如何将 Asp.Net Core 程序部署到 iis 和 部署到 windows 服务.其实前面的都是铺垫,如何将 Asp.Net Core 站点部署到 docker 才是这个系列文章的 ...

  7. Ubuntu下部署java JDK和eclipse IDE

    安装Java编程开发环境: Ubuntu默认安装openjava,可以通过java -version查看是否安装.但我使用Ubuntu9.10升级到10.04LTS时,openjava没有了.另外,如 ...

  8. 设置Portainer管理Docker并且开启https(简单方法)

    1. 序言 Portainer是一个十分好用的docker图形化管理界面,可以很方便的查看容器状态,错误log等等. 2. 安装 安装portainer是十分简单的,只需要执行docker pull ...

  9. Ubuntu下部署SVN+SVNManager

    本文参考了一下博客,特此感谢: 灰烬之灵    一米阳光做IT.测试 环境描述:ubuntu 13.04 1.先创建svn组和svn用户: sudo addgroup svnsudo useradd ...

随机推荐

  1. Redis windows版本资源与安装

    这里提供一个windows版本的Redis百度云资源 链接: https://pan.baidu.com/s/19JY_d_J87n98OeAHK9qI4A 密码: d6dq 1,GitHub下载地址 ...

  2. mysql 导入sql文件的几种形式

    1.没有登陆mysql的时候以文件的形式导入mysql数据 在students.sql文件中加入这些语句 create table t_student( id int primary key auto ...

  3. 洛谷P4169 [Violet]天使玩偶/SJY摆棋子

    %%%神仙\(SJY\) 题目大意: 一个二维平面,有两种操作: \(1.\)增加一个点\((x,y)\) \(2.\)询问距离\((x,y)\)曼哈顿最近的一个点有多远 \(n,m\le 300 0 ...

  4. vue组件通信传值——Vuex

    一.Vuex介绍 Vuex 是一个专为 Vue.js 应用程序开发的状态管理模式.它采用集中式存储管理应用的所有组件的状态,并以相应的规则保证状态以一种可预测的方式发生变化. Vuex 也集成到 Vu ...

  5. 第04组 Alpha冲刺(6/6)

    队名:new game 组长博客:戳 作业博客:戳 组员情况 鲍子涵(队长) 燃尽图 过去两天完成了哪些任务 协调了一下组内的工作 复习了一下SuffixAutomata 接下来的计划 实现更多的功能 ...

  6. 数据仓库001 - 复习Linux shell命令 - pwd mkdir mv tail -f xxx.log 和 ail -F xxx.log

    1.  [root@localhost ~]#  的含义 ?  [登录的用户  机器的名称 家目录] 2. 查看当前光标所在的目录   pwd [root@localhost ~]# pwd /roo ...

  7. C# HTTP系列 HttpWebRequest 与 HttpWebResponse

    HTTP协议,即超文本传输协议(Hypertext transfer protocol).是一种详细规定了浏览器和万维网(WWW = World Wide Web)服务器之间互相通信的规则,通过因特网 ...

  8. 聊一下,前后分离后带来的跨域访问和cookie问题

    在谈前后分离前,我们先看看什么是前后一体的.当我们用javaweb开发网站时,最终我们渲染的jsp或者springthymeleaf.我们的页面其实是WEB-INFO或者templates下.当用户请 ...

  9. 第二十二节:Asp.Net Core中使用托管服务实现后台任务

    1. 说明 BackgroundService 是用于实现长时间运行的 IHostedService 的基类,使用程序集:Microsoft.Extensions.Hosting. 2. 实现方式 继 ...

  10. spring的一些概念及优点

    Spring是一个轻量级的DI和AOP容器框架.说它轻量级有一大部分原因是相对于EJB的(虽然本人从来没有接触过EJB的应用),但重要的是Spring是非侵入式的,基于Spring开发应用一般不依赖于 ...