24.安装Portainer

安装Portainer

1.Portainer介绍

Portainer是一个开源、轻量级Docker管理用户界面,基于Docker API,提供状态显示面板、应用模板快速部署、容器镜像网络数据卷的基本操作(包括上传下载镜像,创建容器等操作)、事件日志显示、容器控制台操作、Swarm集群和服务等集中管理和操作、登录用户管理和控制等功能。功能十分全面,基本能满足中小型单位对容器管理的全部需求。

2.安装docker环境及安装Portainer

#1.安装docker环境
[root@docker ~]# yum install docker -y

#2.启动docker
[root@docker ~]# systemctl start docker
[root@docker ~]# systemctl enable docker

#3.下载Portainer镜像
[root@docker ~]# docker search portainer    #查看portainer镜像
[root@docker ~]# docker pull portainer/portainer      

#4.查看镜像
[root@docker ~]# docker images
REPOSITORY                      TAG                 IMAGE ID            CREATED             SIZE
docker.io/portainer/portainer   latest              2869fc110bf7        12 days ago         78.6 MB

#5.上传汉化包(如果不需要汉化,第5步可以省略)
[root@docker ~]# ls
public.zip
#绝压至跟目录下
[root@docker ~]# unzip public.zip -d /
[root@docker /]# ls
bin  boot  dev  etc  home  lib  lib64  media  mnt  opt  proc  public  root  run  sbin  srv  sys  tmp  usr  var

#不用汉化部署命令
#创建数据卷
[root@dockers ~]# docker volume create portainer_data
portainer_data

#启动容器命令
docker run -d -p 9000:9000 --restart=always -v /var/run/docker.sock:/var/run/docker.sock -v portainer_data:/data --name prtainer-test portainer/portainer

#6.本次只部署单机版,命令如下(汉化版)
[root@dockers ~]# docker volume create portainer_data
portainer_data

[root@docker ~]# docker run -d -p 9000:9000 --restart=always  -v /var/run/docker.sock:/var/run/docker.sock -v portainer_data:/data -v /public:/public --name prtainer-test  portainer/portainer

#Portainer连接其他docker的宿主机也比较简单,不过需要配置下docker,将docker的tcp连接方式打开。命令如下
vim /usr/lib/systemd/system/docker.service
ExecStart=/usr/bin/dockerd-current \          
-H tcp://0.0.0.0:2375 -H unix://var/run/docker.sock \
systemctl daemon-reload
systemctl restart docker
#注意,防火墙和selinux需要关闭
#注意(报错处理方法)
[root@dockers ~]# docker run -d -p 9000:9000 --restart=always  -v /var/run/docker.sock:/var/run/docker.sock -v portainer_data:/data -v /public:/public --name prtainer-test  portainer/portainer
WARNING: IPv4 forwarding is disabled. Networking will not work.
8bd2fd5a1794f25a87a87f934413201a10fdf938b299440b79682a7a19cfba0c

[root@dockers ~]# vim /usr/lib/sysctl.d/00-system.conf 
#添加
net.ipv4.ip_forward=1
#重启网卡
[root@dockers ~]# systemctl restart network

参数说明:
-d:容器在后台运行;
-p 9000:9000 :宿主机9000端口映射容器中的9000端口
–restart :标志会检查容器的退出代码,并据此来决定是否要重启容器,默认是不会重启。
–restart=always:自动重启该容器
-v /var/run/docker.sock:/var/run/docker.sock :把宿主机的Docker守护进程(Docker daemon)默认监听的Unix域套接字挂载到容器中
-v portainer_data:/data :把宿主机portainer_data数据卷挂载到容器/data目录
–name prtainer-test : 给容器起名为portainer-test

#7.使用docker  ps  -a 查看进程
[root@docker ~]# docker ps -a
CONTAINER ID      IMAGE            COMMAND        CREATED        STATUS    
f7510fb1fa6f portainer/portainer "/portainer"  27 minutes ago  Up 27 minutes       
PORTS                    NAMES
0.0.0.0:9000->9000/tcp   prtainer-test


**在浏览器输入部署服务器的IP:9000,回车,显示如下界面:**首次登录需要注册用户,给用户admin设置密码,如下图:

在这里插入图片描述

注意:从上图可以看出,有提示需要挂载本地 /var/run/docker.socker与容器内的/var/run/docker.socker连接。因此,在启动时必须指定该挂载文件。

在这里插入图片描述

在这里插入图片描述

错误处理

在这里插入图片描述

在这里插入图片描述

汉化版

在这里插入图片描述

进入后可以对容器、镜像、网络、数据卷等进行管理,如下图:

在这里插入图片描述

2.1 安装docker-ce-17.12.1.ce

#安装docker-ce-17.12.1.ce
yum remove docker -y
yum remove docker  docker-common docker-selinux docker-engine -y
yum install -y yum-utils device-mapper-persistent-data lvm2
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
yum install docker-ce-17.12.1.ce -y

3.集群运行

1.Swarm简介

Swarm项目,通过把多个Docker Engine聚集在一起,形成一个大的docker-engine,对外提供容器的群集服务。同时,这个群集对外提供Swarm API,用户可以像使用Docker Engine一样使用Docker群集。
Swarm是个一套较为简单的工具,用以管理Docker群集,使得Docker群集暴露给用户时相当于一个虚拟的整体。Swarm使用标准的Docker API接口作为其前端访问入口,换言之,各种形式的Docker Client(dockerclient in go,docker_py,docker等)均可以直接与Swarm通信,Swarm几乎全部用Go语言来完成开发的。

在这里插入图片描述

2.Swarm工作原理

1、Swarm
群集的管理和编排是使用嵌入到Docker引擎的SwarmKit,可以在Docker初始化时启动Swarm模式或者加入已存在的Swarm
2、Node
一个节点(node)是已加入到swarm的Docker引擎的实列当部署应用到集群,你将会提交服务定义到管理节点,接着Manager管理节点调度任务到worker节点,manager节点还执行维护集群的状态的编排和群集管理功能,work节点接收并执行来自manager节点的任务。通常,manager节点也可以是worker节点,work节点会报告当前状态给manager节点。
3、服务(Service)
服务是要在work节点上要执行任务的定义,它在工作这节点上执行,当创建服务的时,需要指定容器镜像。
4、任务(Task)
任务是在docker容器中执行的命令,manager节点根据指定数量的任务副本分配任务给work节点。

3.Swarm各个模块的功能

docker swarm:集群管理,子命令由init,join,leave,updata。(docker swarm -help查看帮助)
docker service:服务创建,子命令由create,inspect,update,remove,tasks。(docker service -help查看帮助)
node是加入到swarm集群中的一个docker引擎实体,可以在一台物理机上运行多个node,node分为:
1)Manager node(管理节点):执行集群的管理功能,维护集群的状态,选觉一个leader节点去执行调度任务。
2)Work node(工作节点):接收和执行任务,参与容器集群负载调度,仅用于承载task。
service服务:一个服务是工作节点上执行任务的定义。创建一个服务,制定了容器所使用的镜像和容器运行的命令。
task任务:一个任务 包含了一个容器及其运行的命令。task是service的执行实体,task启动docker容器并在容器中执行任务。

4.swarm部署

1、系统环境

两台centos 7分别对应swarm01和swarm02
swarm01:192.168.35.9
swarm02:192.168.35.10

2、修改主机名
hostnamectl set-hostname swarm01
hostnamectl set-hostname swarm02

vi /etc/hosts   //分别修改hosts文件
192.168.35.9 swarm01
192.168.35.10 swarm02
3、安装docker(每台都要装)
yum install docker -y 
4、修改docker监听端口

Swarm是通过监听2375端口进行通信的,所以在使用Swarm进行集群管理之前,需要设置一下2375端口的听。所有主机节点docker开启2375监听,docker版本不同,配置方式不一样。

vi /lib/systemd/system/docker.service

在ExecStart加入:-H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock

在这里插入图片描述

systemctl start docker  //启动docker
systemctl enable docker
tcp6       0      0 :::2375                 :::*                    LISTEN      8045/dockerd-curren 
netstat -anput | grep 2375  //查看监听端口

5、swarm安装(两台分别安装)
[root@swarm01 ~]# docker pull swarm       //从docker仓库拉取swarm
[root@swarm01 ~]# docker images           查看是否下载成功

REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
docker.io/swarm     latest              ff454b4a0e84        22 months ago       12.7 MB

docker swarm init --advertise-addr 192.168.35.9    //初始化Swarm

–advertis-addr:swarm中的work节点使用此IP地址与manager联系

在这里插入图片描述

上面命令执行后,该机器自动加入到swarm集群。这个会创建一个集群token,获取全球唯一的token,作为集群唯一标识。后续将其他节点加入集群都会用到这个token值。

在这里插入图片描述

6添加集群节点

在swaram02机器上执行以下命令

docker swarm join \
    --token SWMTKN-1-4kjius0d5a7fbnfq9yik9uyim4jv99dlteb7dgbiiz81do1wk3-dcmknnk23puv8ui8uaikxuidq \
    192.168.35.9:2377

7升级或降级节点(只能在主节点上)
docker node promote swarm02 //将swarm02升级为主节点
docker node demote swarm01  //将swarm01降级为工作节点
docker node list    //在swarm02上查看

在这里插入图片描述

在这里插入图片描述

8创建swarm集群网络(swarm02上)
docker network create --driver overlay skynet
docker network ls  //查看网络

在这里插入图片描述

9swarm部署http(在主节点swarm02上)
docker service create -p 80:80 --name webserver --replicas 4 httpd
--name:服务名称
--replicas:服务副本集个数
-p:端口映射
docker service ls //查看服务列表

在这里插入图片描述

docker service ps webserver | grep Running     //查看具体服务开启情况

在这里插入图片描述

web分别访问192.168.80.100和192.168.80.110

在这里插入图片描述

在这里插入图片描述

注意:swarm02上并没有部署httpd但是可以访问网页,说明swarm01节点接收了主节点的任务部署。

10 swarm图像化管理(swar02上)
docker pull portainer/portainer //拉取图像化管理镜像
docker run -d -p 9000:9000 --restart=always --name prtainer-test portainer/portainer    //启动镜像

#启动镜像(汉化版,前面写到)
[root@dockers ~]# docker volume create portainer_data
portainer_data

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

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

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

swarm选项图

ner-test portainer/portainer


[外链图片转存中...(img-VcyOmJB6-1597479055222)]



[外链图片转存中...(img-edHgCqOo-1597479055223)]



[外链图片转存中...(img-h7omuOmm-1597479055225)]



[外链图片转存中...(img-591Qr9Ec-1597479055227)]

[外链图片转存中...(img-N1P6FvlV-1597479055228)]

[外链图片转存中...(img-l2LfeLio-1597479055229)]

swarm选项图

![在这里插入图片描述](https://img-blog.csdnimg.cn/20200815161910267.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NTg1ODQzOQ==,size_16,color_FFFFFF,t_70#pic_center)

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值