Docker原生编排工具怎么用

这篇文章将为大家详细讲解有关Docker原生编排工具怎么用,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。

创新互联专注为客户提供全方位的互联网综合服务,包含不限于成都网站制作、成都网站设计、德令哈网络推广、微信小程序定制开发、德令哈网络营销、德令哈企业策划、德令哈品牌公关、搜索引擎seo、人物专访、企业宣传片、企业代运营等,从售前售中售后,我们都将竭诚为您服务,您的肯定,是我们最大的嘉奖;创新互联为所有大学生创业者提供德令哈建站搭建服务,24小时服务热线:18980820575,官方网址:www.cdcxhl.com

Docker原生编排工具

一、docker-compose

概念

Compose默认管理对象是项目,通过子命令对项目中的一组容器进行生命周期的管理。

Compose项目由Python实现,实现上调用了Docker服务提供的API来对容器进行管理。

配置步骤

1、安装Docker-ce引擎

比较简单不在赘述,直接上shell脚本

#!/bin/bash
#Docker引擎部署
#安装依赖包
yum install yum-utils device-mapper-persistent-data lvm2 -y

#设置阿里云镜像源
yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

#安装Docker-ce
yum install -y docker-ce

#关闭防火墙及增强型安全功能
systemctl stop firewalld.service
setenforce 0

#启动Docker并设置为开机自启动
systemctl start docker.service
systemctl enable docker.service

#网络优化
echo "net.ipv4.ip_forward=1" >> /etc/sysctl.conf
sysctl -p
service network restart 
systemctl restart docker
2、部署docker-compose
#下载安装compose
curl -L https://github.com/docker/compose/releases/download/1.25.1-rc1/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose

#提权方便调用
chmod +x /usr/local/bin/docker-compose

#建立compose站点
mkdir /root/docker_compose
3、compose练习实例

Docker Compose配置常用字段

字段描述
build dockerfile context指定Dockerfile文件名构建镜像上下文路径
image指定镜像
command执行命令,覆盖默认命令
container name指定容器名称,由于容器名称是唯一的
deploy指定部署和运行服务相关配置,只能在Swarm模式使用
environment添加环境变量
networks加入网络
ports暴露容器端口,与-p相同,但端口不能低于60
volumes挂载宿主机路径或命令卷
restart重启策略,默认no,always, no-failure,unless-stoped
hostname容器主机名

Docker Compose常用命令

字段描述
build重新构建服务
ps列出容器
up创建和启动容器
exec在容器里面执行命令
scale指定一个服务容器启动数量
top显示容器进程
logs查看容器输出的日志文件
down删除容器、网络、数据卷和镜像
stop/start/restart停止/启动/重启服务

集合部署nginx+Tomcat

#建立compose文件
vim /root/docker-compose/docker-compose.yml
#compose版本号,有1、2、3
version: '3.3'
#服务名称
services:
  nginx:
#主机名
    hostname: nginx
#建立镜像需要的目录、dockerfile脚本名
    build:
      context: ./nginx
      dockerfile: Dockerfile
#映射宿主机端口
    ports:
     - 1216:80
     - 1200:443
#工作组:同一集群一个名字
    networks:
     - test
#建立数据集的目录
    volumes:
     - ./wwwroot:/usr/local/nginx/html
  tomcat:
    hostname: tomcat
    build:
      context: ./tomcat
      dockerfile: Dockerfile
    ports:
     - 888:8080
    networks:
     - test
networks:
  test:

#需要建立新镜像的服务需要放在compose工作站点中
[root@localhost docker_compose]# ls
docker-compose.yml  nginx  tomcat

#建立容器
“-f”  指定compose文件
docker-compose -f docker-compose.yml up -d

二、docker-consul集群+template

实验准备
名称角色IP地址预装环境
centos7-1master192.168.142.66Docker-ce、Compose 3、Consul、Consul-template
centos7-2slave1192.168.142.77Docker-ce、registrator
centos7-minslave2192.168.142.136Docker-ce、registrator

docker-consul集群实验步骤

master端

//安装Consul
[root@localhost ~]# mkdir consul
[root@localhost ~]# cd consul/
[root@localhost consul]# unzip consul_0.9.2_linux_amd64.zip
[root@localhost consul]# ls
consul  consul_0.9.2_linux_amd64.zip

后台启动

//移动文件,方便识别
[root@localhost consul]# mv consul /usr/bin/

[root@localhost consul]# consul agent \
-server \
-bootstrap \
-ui \
-data-dir=/var/lib/consul-data \
-bind=192.168.142.66 \
-client=0.0.0.0 \
-node=consul-server01 &> /var/log/consul.log &

[root@localhost consul]# jobs
[1]+  运行中               consul agent -server -bootstrap -ui -data-dir=/var/lib/consul-data -bind=192.168.142.66 -client=0.0.0.0 -node=consul-server01 &>/var/log/consul.log &

"agent"  使用agent代理功能

"-server"  提供server功能

"-bootstrap"   参与选举为领袖

"-ui"     提供用户界面

"-data-dir"    参数存储位置

"-bind"     绑定地址

"-node"    定义节点名称

检查群集

//查看群集信息
[root@localhost consul]# consul members
Node             Address              Status  Type    Build  Protocol  DC
consul-server01  192.168.142.66:8301  alive   server  0.9.2  2         dc1

//过滤leader信息
[root@localhost consul]# consul info | grep leader
        leader = true
        leader_addr = 192.168.142.66:8300

通过httpd api 获取集群信息

curl 127.0.0.1:8500/v1/status/peers         //查看集群server成员

curl 127.0.0.1:8500/v1/status/leader        //集群Raf leader

curl 127.0.0.1:8500/v1/catalog/services       //注册的所有服务。

curl 127.0.0.1:8500/v1/catalog/nginx           //查看nginx服务信息

curl 127.0.0.1:8500/v1/catalog/nodes          //集群节点详细信息

使节点服务器中的容器自动加入

//安装registrator(注册器)
//该工具可检查容器运行状态自动 进行注册,还可注销docker容器的服务
[root@localhost ~]# docker run -d \
--name=registrator \
--net=host \
-v /var/run/docker.sock:/tmp/docker.sock \
--restart=always \
gliderlabs/registrator:latest \
-ip=192.168.142.77 \
consul://192.168.142.66:8500

测试功能是否正常

[root@localhost ~]# docker run -itd -p:83:80 --name test-01 -h test01 nginx
[root@localhost ~]# docker run -itd -p:84:80 --name test-02 -h test02 nginx
[root@localhost ~]# docker run -itd -p:85:80 --name test-03 -h test03 httpd
[root@localhost ~]# docker run -itd -p:86:80 --name test-04 -h test04 httpd

验证群集是否建立成功

浏览器中输入http://192.168.142.66:8500,单击“NODES”,然后点击“consurl-seerver01”,即可看到五个服务(图形化界面)

建立template进行代理

手工编译安装nginx

没啥说的,装呗。版本:nginx1.12.0

安装consul-template

template属于守护进程,用于实时查询consul集群信息,并实时使用模板进行配置文件的生成。

[root@localhost ~]# unzip consul-template_0.19.3_linux_amd64.zip
//启用template命令
[root@localhost ~]# mv consul-template /usr/bin/

编写nginx配置文件模板

[root@localhost consul]# vim nginx.ctmpl        //nginx配置文件的模板
upstream http_backend {         //服务器池的名称
  {{range service "nginx"}}
  server {{.Address}:{{.Port}};     //调用变量:服务器节点的地址和端口
  {{end}}
}

server {
  listen 110;
  server_name localhost 192.168.142.66;     //master端地址
  access_log /var/log/nginx/kgc.cn-access.log;
  index index.html index.php;
  location / {          //请求头部信息的设定
    proxy_set_header HOST $host;
    proxy_set_header X-Real-IP $remote_addr;    //后端服务器IP
    proxy_set_header Client-IP $remote_addr;    //client的IP
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;    //forward跳转地址
    proxy_pass http://http_backend;         //请求跳转给http_backend服务器池
  }
}

进行配置

//更改nginx配置文件
[root@localhost nginx-1.12.0]# vim /usr/local/nginx/conf/nginx.conf
//在18行下插入以下内容
include     vhost/\*.conf;                    //添加include方便nginx识别模板生成的配置文件

//此时还没有这个文件,需要去创建
[root@localhost nginx-1.12.0]# cd /usr/local/nginx/conf/
[root@localhost conf]# mkdir vhost      //创建虚拟机目录

//启用template模板(启用后会进入监控模式)
[root@localhost ~]# consul-template -consul-addr 192.168.142.66:8500 \
-template "/root/consul/nginx.ctmpl:/usr/local/nginx/conf/vhost/kgc.conf:/usr/local/nginx/sbin/nginx -s reload" \
--log-level=info

“-consul-addr”          #指定consul端地址

“-template”               #后方从左到右分别为:模板文件路径、生成的配置文件名称、重载nginx

“--log-level”              #写入日志的等级

因为template是在consul集群的基础上进行搭建的,因此在启动template后就能直接识别slave中的nginx容器
后续进行新的nginx容器的添加时,直接run一个新的容器后便会自动添加进配置文件中

关于“Docker原生编排工具怎么用”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。


标题名称:Docker原生编排工具怎么用
网址分享:http://myzitong.com/article/ipjeoh.html