Docker可视化web界面管理-Portainer部署记录

Docker图形页面管理工具基本常用的有三种: Docker UI,Shipyard,Portainer,之前分别介绍了Docker UI和Shipyard部署,下面简单介绍下Portainer部署.Portainer是Docker的图形化管理工具,提供状态显示面板、应用模板快速部署、容器镜像网络数据卷的基本操作(包括上传下载镜像,创建容器等操作)、事件日志显示、容器控制台操作、Swarm集群和服务等集中管理和操作、登录用户管理和控制等功能, 功能十分全面,基本能满足中小型单位对容器管理的全部需求。

0)  机器环境

[[email protected] ~]# cat /etc/redhat-release
CentOS Linux release 7.5.1804 (Core) 

[[email protected] ~]# ifconfig|grep 172.16.60
        inet 172.16.60.213  netmask 255.255.255.0  broadcast 172.16.60.255

[[email protected] ~]# systemctl stop firewalld
[[email protected] ~]# systemctl disable firewalld
[[email protected] ~]# firewall-cmd --state
not running

1)  查询当前有哪些Portainer镜像

[[email protected] ~]# docker search portainer
NAME                             DESCRIPTION                                     STARS               OFFICIAL            AUTOMATED
portainer/portainer              A simple to use management user interface fo…   831
hypriot/rpi-portainer            A web interface for the Docker engine. Dead …   36
portainer/templates              App Templates for Portainer http://portainer…   14
portainer/agent                  An agent used to manage all the resources in…   10
portainer/golang-builder         Utility to build Golang binaries.               2                                       [OK]
bmoorman/portainer               Portainer [github.com/portainer/portainer] o…   1                                       [OK]
arpanpal010/portainer                                                            1
usgsastro/portainer              custom portainer install into centos7           1                                       [OK]
softonic/portainer-endpoint      Allows auto register all the swarm nodes in …   1                                       [OK]
dockerframework/portainer        Portainer (Simple Management UI for Docker) …   1                                       [OK]
rancher/portainer-agent                                                          0
voltha/voltha-portainer          Portainer support for VOLTHA                    0
nenadilic84/portainer                                                            0
rodjers/portainer                Swarm portainer                                 0
portainer/base                   Multi-stage build image to create the Portai…   0                                       [OK]
hassioaddons/portainer                                                           0
portainer/angular-builder        Builder image for Portainer frontend.           0                                       [OK]
stefanscherer/portainer          Portainer for Windows Insider                   0
jiangxinshang/portainer          可在loongson的mips64el平台运行的portainer               0
ssbkang/portainer                                                                0
ollijanatuinen/portainer         debug/development versions of portainer         0
helloysd/portainer                                                               0
j0nnylester/portainer            portainer running on a Raspberry Pi             0
11384eb/portainer                                                                0
flochtililoch/armv7l-portainer                                                   0      

2)  下载Portainer镜像

[[email protected] ~]# docker pull portainer/portainer
Using default tag: latest
latest: Pulling from portainer/portainer
d1e017099d17: Pull complete
d4e5419541f5: Pull complete
Digest: sha256:07c0e19e28e18414dd02c313c36b293758acf197d5af45077e3dd69c630e25cc
Status: Downloaded newer image for portainer/portainer:latest
[[email protected] ~]# docker images
REPOSITORY            TAG                 IMAGE ID            CREATED             SIZE
nginx                 latest              62f816a209e6        6 days ago          109MB
portainer/portainer   latest              00ead811e8ae        8 weeks ago         58.7MB

3)  运行Portainer,Portainer运行方式有以下两种方式:

单机版运行
如果仅有一个docker宿主机,则可使用单机版运行,运行以下命令就可以启动了:

[[email protected] ~]# docker run -ti -d --name kevin-portainer -p 9000:9000 --restart=always -v /var/run/docker.sock:/var/run/docker.sock  portainer/portainer
5818eaf37bf493a679ebbaa05ba28c6a860501ea78e608981e1934300843ab4b

[[email protected] ~]# docker ps
CONTAINER ID        IMAGE                 COMMAND             CREATED             STATUS              PORTS                    NAMES
5818eaf37bf4        portainer/portainer   "/portainer"        19 seconds ago      Up 2 seconds        0.0.0.0:9000->9000/tcp   kevin-portainer

以上语句用宿主机9000端口关联容器中的9000端口,并给容器起名为portainer-test。启动成功后,使用该机器IP:PORT即可访问Portainer。访问http://172.16.60.213:9000, 首次登陆需要注册用户,给admin用户设置密码:

单机版这里选择local, 点击Connect进行连接即可

如上,点击左边栏的"Endpoint"-"local",可以将单机版的节点名称修改下,比如将默认的"local"改为"docker-node1-172.16.60.213"

点击"Update endpoint",就可以看到修改后新的节点名称"docker-node1-172.16.60.213"了,然后点击"Home",点击右边的docker-node1-172.16.60.213节点,就可看到该节点的Docker管理信息.

接着就可以在这个web节点里进行Docker容器的创建,更名,关闭,启动,删除以及镜像,网络,volume等操作管理了

集群运行
在有多台Docker的情况下,进行集群管理就十分重要了,Portainer也支持集群管理,Portainer可以和Swarm一起来进行集群管理操作。通过以下命令启动:

一.   先来搭建Swarm集群环境

1) 基本环境
用两台机器来搭建(都是centos7.5系统)
172.16.60.213    docker-node1
172.16.60.214    docker-node2

[[email protected] ~]# cat /etc/redhat-release
CentOS Linux release 7.5.1804 (Core) 

修改两台机器的主机名并做hosts (这里以docker-node1为例)
[[email protected] ~]# hostnamectl set-hostname docker-node1
[[email protected] ~]# echo "docker-node1" > /etc/hostname
[[email protected] ~]# vim /etc/hosts
172.16.60.213    docker-node1
172.16.60.214    docker-node2

关闭两台机器的防火墙和selinux (这里以docker-node1为例)
[[email protected] ~]# systemctl stop firewalld
[[email protected] ~]# systemctl disable firewalld
[[email protected] ~]# firewall-cmd --state
not running
[[email protected] ~]# cat /etc/sysconfig/selinux
SELINUX=disabled
[[email protected] ~]# setenforce 0
[[email protected] ~]# getenforce
Disabled

两台机器都要安装docker环境 (这里以docker-node1为例)
[[email protected] ~]# yum install -y docker
[[email protected] ~]# systemctl start docker
[[email protected] ~]# systemctl disable docker

修改docker监听端口 (这里以docker-node1为例)
Swarm是通过监听2375端口进行通信的,所以在使用Swarm进行集群管理之前,需要设置一下2375端口的监听。所有主机节点docker开启2375监听,
docker版本不同,配置方式不一样
[[email protected] ~]# cp /lib/systemd/system/docker.service /lib/systemd/system/docker.service.bak
[[email protected] ~]# vim  /lib/systemd/system/docker.service         //将ExecStart一行修改为下面内容:
ExecStart=/usr/bin/dockerd -H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock

[[email protected] ~]# diff /lib/systemd/system/docker.service /lib/systemd/system/docker.service.bak
13c13
< ExecStart=/usr/bin/dockerd -H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock
---
> ExecStart=/usr/bin/dockerd -H unix://

重启docker服务
[[email protected] ~]# systemctl daemon-reload
[[email protected] ~]# systemctl restart docker

2) Swarm安装和集群创建

2.1) Swarm镜像下载
docker-node1机器上下载
[[email protected] ~]# docker pull swarm
[[email protected] ~]# docker images
REPOSITORY            TAG                 IMAGE ID              CREATED               SIZE
swarm                      latest              ff454b4a0e84        5 months ago        12.7MB

docker-node2机器上下载
[[email protected] ~]# docker pull swarm
[[email protected] ~]# docker images
REPOSITORY          TAG                 IMAGE ID               CREATED              SIZE
docker.io/swarm     latest              ff454b4a0e84        5 months ago        12.7 MB

2.2) 初始化Swarm
在docker-node1机器上进行初始化操作
[[email protected] ~]# docker swarm init --advertise-addr 172.16.60.213
Swarm initialized: current node (vayif0c04lged913w9z3pxtd5) is now a manager.

To add a worker to this swarm, run the following command:

    docker swarm join --token SWMTKN-1-5qjhhernfguqc4zwhtwgdzfwy7xl1ksjr04ve2wg0pk376wqvx-717allcxbo5mu02weq0s4ge36 172.16.60.213:2377

To add a manager to this swarm, run ‘docker swarm join-token manager‘ and follow the instructions.

上面命令执行后,该机器自动加入到swarm集群。这个会创建一个集群token,获取全球唯一的 token,作为集群唯一标识。
后续将其他节点加入集群都会用到这个token值。
其中,--advertise-addr参数表示其它swarm中的worker节点使用此ip地址与manager联系。命令的输出包含了其它节点如何加入集群的命令。

2.3) 添加集群节点
在docker-node2机器上执行以下添加集群节点的操作命令
[[email protected] ~]# docker swarm join --token SWMTKN-1-5qjhhernfguqc4zwhtwgdzfwy7xl1ksjr04ve2wg0pk376wqvx-717allcxbo5mu02weq0s4ge36 172.16.60.213:2377
This node joined a swarm as a worker.

如后续要加入其他更多的节点,添加操作也是执行这个命令.

2.3) 查看集群节点
在docker-node1机器上执行查看,因为此时它是swarm集群的leader节点
[[email protected] ~]# docker node list
ID                                   HOSTNAME          STATUS            AVAILABILITY        MANAGER STATUS      ENGINE VERSION
vayif0c04lged913w9z3pxtd5 *          docker-node1      Ready             Active              Leader              18.09.0
trmbfdjdxncnukfenuzuokfun            docker-node2      Ready             Active                                  1.13.1

最后查看下两个机器上的2375端口都已经开启了
[[email protected] ~]# lsof -i:2375
COMMAND   PID USER   FD   TYPE  DEVICE SIZE/OFF NODE NAME
dockerd 13785 root    5u  IPv6 4518841      0t0  TCP *:2375 (LISTEN)

[[email protected] ~]# lsof -i:2375
COMMAND    PID USER   FD   TYPE  DEVICE SIZE/OFF NODE NAME
dockerd-c 2966 root    5u  IPv6 3602947      0t0  TCP *:2375 (LISTEN)

===============================================================
二.  部署Portainer

docker-node1节点操作

删除上面单机版部署的容器
[[email protected] ~]# for i in $(docker ps -a -q);do docker stop $i && docker rm $i;done
e3af45ff8141
e3af45ff8141
5818eaf37bf4
5818eaf37bf4
[[email protected] ~]# docker ps -a
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES

[[email protected] ~]# docker images
REPOSITORY             TAG                 IMAGE ID            CREATED             SIZE
portainer/portainer   latest              00ead811e8ae        8 weeks ago         58.7MB

[[email protected] ~]# docker run -ti -d --name my-portainer -p 9000:9000 --restart=always  portainer/portainer
6755cd140049d7cb3ab77f40ddf0fb79f20384cffd17cb87da68d04033be30b5

[[email protected] ~]# docker ps
CONTAINER ID        IMAGE                       COMMAND             CREATED              STATUS                  PORTS                              NAMES
6755cd140049        portainer/portainer   "/portainer"            57 seconds ago      Up 41 seconds       0.0.0.0:9000->9000/tcp   my-portainer

访问http://172.16.60.213:9000,   同样首次登陆需要注册用户,给admin用户设置密码:

集群模式, 这样一定要选择Remote, 输入docker-node1的ip,然后点击Connect。

同样点击左边栏的"Endpoints" - "+add endpoint", 添加集群节点

如上,发现docker-node1(172.16.60.213)节点状态是"down",排查原因:

原文地址:https://www.cnblogs.com/kevingrace/p/9953677.html

时间: 2024-10-31 12:49:36

Docker可视化web界面管理-Portainer部署记录的相关文章

第五课:docker图形化界面管理-Portainer

Portainer是一个开源,轻量级Daocker管理用户界面,基于Docker API,可管理Docker主机或Swarm集群,支持最新版Docker和Swarm模式. https://github.com/portainer/portainer shipyard已不再更新 1. 创建卷 docker volume create portainer_data 2. 创建portainer容器 docker run -d docker run -d -p 8000:8000 -p 9000:90

Docker集中化web界面管理平台-Shipyard部署记录

之前介绍了DOcker的web管理工具DockerUI,下面介绍下Docker的另一个web界面管理工具Shipyard的使用.Shipyard(github)是建立在docker集群管理工具Citadel之上的可以管理容器.主机等资源的web图形化工具,包括core和extension两个版本,core即shipyard主要是把多个 Docker host上的 containers 统一管理(支持跨越多个host),extension即shipyard-extensions添加了应用路由和负载

Redis Web界面管理工具

Redis Web界面管理工具 一个很友好的Redis Web界面管理工具.基于.NET实现.可以通过Mono部署到Linux上,下面是我部署在CentOS 5.7 + Mono 2.10.8 + Jexus 5.0.1: 详情介绍:http://www.servicestack.net/mythz_blog/?p=381 项目地址:https://github.com/ServiceStack/ServiceStack.RedisWebServices 源码下载地址:https://githu

Cobbler 全自动化安装、简介、Web界面管理【附送源码包】

Cobbler简介 Cobbler这个英文翻译过来的意思是补鞋匠,为什么会是补鞋匠的意思,很简单,因为它简单得连补鞋匠都能学会安装系统. Cobbler通过将部署系统所涉及的所有服务集中在一起,来提供一个全自动批量快速建立Linux系统的网络安装环境. 在学习Cobbler之前可以看看PXE无人值守安装系统. Cobbler特点: ·Cobbler支持多种Linux操作系统得快速部署,对PXE.DHCP.HTTP.TFTP.Kiskstart.YUM仓库.电源等进行统一管理 ·Cobbler提供

openvpn web界面管理软件

openvpn  web界面管理软件 https://www.vultr.com/docs/installing-openvpn-on-centos-7

zookeeper的可视化web界面

转载一篇我心中大神有关zookeeper  WEB的文章 以前写过一篇zookeeper集群搭建的文章<烂泥:zookeeper集群搭建>,最近在使用activemq集群过程中碰到了一些有关zookeeper的问题,想通过ui查看zookeeper集群的数据. 找来找去,发现zkui这个ui工具很不错,本篇文章就介绍有关zkui的搭建与配置. PS:在此我们以Activemq集群的zookeeper集群数据为例. 一.初始化环境 zkui是基于java语言开发,首先就要我们安装jdk环境. 因

nodejs+express打造ansible自动化运维web界面管理

终于写点自己感觉有用的东西啦,最起码做到了简化了重复工作,希望能对大家也同样有用,我会对此进行放出源代码,自己也用心写一下,尽量减少bug的出现,也请大家如果有需求我可以继续增加功能,然后在更新代码.目前只是实现了一些小功能,自动化部署的功能和其它在开发的功能会陆续实现. 照理先贴几张web界面 (请大家广集一下,总览界面应该是什么样子或者都需要看到什么信息? (操作中,批量命令执行,是否需要做的特别傻瓜,几乎都是选择和输入关键词? 等我写完了就把代码放出来.... 原文地址:http://bl

webmin纯web界面管理linux系统

关键字: 摘要:从Windows环境的管理转到Linux环境的管理时所面临的挑战之一是,您需要去学习利用新的工具.作为一个管理员,您希望理解操作系统的细节以发挥它的最大功效.但是,当您还处在学习阶段时,就需要去完成具体的工作.为加速您驾驭Linux的进度,我们将安装一个叫做Webmin的程序.如Webmin.com所言:“Webmin是一个基于Web的Unix系统管理界面.借助任何支持表格和表单的浏览器(和FileManager模块所需要的Java),您就可以设置用户帐号.Apache.DN 从

nginx的web缓存服务环境部署记录

web缓存位于内容源Web服务器和客户端之间,当用户访问一个URL时,Web缓存服务器会去后端Web源服务器取回要输出的内容,然后,当下一个请求到来时,如果访问的是相同的URL,Web缓存服务器直接输出内容给客户端,而不是向源服务器再次发送请求.Web缓存降低了内容源Web服务器,数据库的负载,减少了网络延迟,提高了用户访问的响应速度,增强了用户体验. web缓存服务器中,最著名的要数Squid Cache(简称为Squid),Squid是一个流浪的自由软件的代理服务器和Web缓存服务器.---