這篇文章將為大家詳細(xì)講解有關(guān)Docker原生編排工具怎么用,小編覺(jué)得挺實(shí)用的,因此分享給大家做個(gè)參考,希望大家閱讀完這篇文章后可以有所收獲。
創(chuàng)新互聯(lián)專(zhuān)注為客戶(hù)提供全方位的互聯(lián)網(wǎng)綜合服務(wù),包含不限于成都網(wǎng)站制作、成都網(wǎng)站設(shè)計(jì)、德令哈網(wǎng)絡(luò)推廣、微信小程序定制開(kāi)發(fā)、德令哈網(wǎng)絡(luò)營(yíng)銷(xiāo)、德令哈企業(yè)策劃、德令哈品牌公關(guān)、搜索引擎seo、人物專(zhuān)訪、企業(yè)宣傳片、企業(yè)代運(yùn)營(yíng)等,從售前售中售后,我們都將竭誠(chéng)為您服務(wù),您的肯定,是我們最大的嘉獎(jiǎng);創(chuàng)新互聯(lián)為所有大學(xué)生創(chuàng)業(yè)者提供德令哈建站搭建服務(wù),24小時(shí)服務(wù)熱線:18980820575,官方網(wǎng)址:www.cdcxhl.com
Compose默認(rèn)管理對(duì)象是項(xiàng)目,通過(guò)子命令對(duì)項(xiàng)目中的一組容器進(jìn)行生命周期的管理。
Compose項(xiàng)目由Python實(shí)現(xiàn),實(shí)現(xiàn)上調(diào)用了Docker服務(wù)提供的API來(lái)對(duì)容器進(jìn)行管理。
比較簡(jiǎn)單不在贅述,直接上shell腳本
#!/bin/bash #Docker引擎部署 #安裝依賴(lài)包 yum install yum-utils device-mapper-persistent-data lvm2 -y #設(shè)置阿里云鏡像源 yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo #安裝Docker-ce yum install -y docker-ce #關(guān)閉防火墻及增強(qiáng)型安全功能 systemctl stop firewalld.service setenforce 0 #啟動(dòng)Docker并設(shè)置為開(kāi)機(jī)自啟動(dòng) systemctl start docker.service systemctl enable docker.service #網(wǎng)絡(luò)優(yōu)化 echo "net.ipv4.ip_forward=1" >> /etc/sysctl.conf sysctl -p service network restart systemctl restart docker
#下載安裝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 #提權(quán)方便調(diào)用 chmod +x /usr/local/bin/docker-compose #建立compose站點(diǎn) mkdir /root/docker_compose
Docker Compose配置常用字段
字段 | 描述 |
---|---|
build dockerfile context | 指定Dockerfile文件名構(gòu)建鏡像上下文路徑 |
image | 指定鏡像 |
command | 執(zhí)行命令,覆蓋默認(rèn)命令 |
container name | 指定容器名稱(chēng),由于容器名稱(chēng)是唯一的 |
deploy | 指定部署和運(yùn)行服務(wù)相關(guān)配置,只能在Swarm模式使用 |
environment | 添加環(huán)境變量 |
networks | 加入網(wǎng)絡(luò) |
ports | 暴露容器端口,與-p相同,但端口不能低于60 |
volumes | 掛載宿主機(jī)路徑或命令卷 |
restart | 重啟策略,默認(rèn)no,always, no-failure,unless-stoped |
hostname | 容器主機(jī)名 |
Docker Compose常用命令
字段 | 描述 |
---|---|
build | 重新構(gòu)建服務(wù) |
ps | 列出容器 |
up | 創(chuàng)建和啟動(dòng)容器 |
exec | 在容器里面執(zhí)行命令 |
scale | 指定一個(gè)服務(wù)容器啟動(dòng)數(shù)量 |
top | 顯示容器進(jìn)程 |
logs | 查看容器輸出的日志文件 |
down | 刪除容器、網(wǎng)絡(luò)、數(shù)據(jù)卷和鏡像 |
stop/start/restart | 停止/啟動(dòng)/重啟服務(wù) |
集合部署nginx+Tomcat
#建立compose文件 vim /root/docker-compose/docker-compose.yml #compose版本號(hào),有1、2、3 version: '3.3' #服務(wù)名稱(chēng) services: nginx: #主機(jī)名 hostname: nginx #建立鏡像需要的目錄、dockerfile腳本名 build: context: ./nginx dockerfile: Dockerfile #映射宿主機(jī)端口 ports: - 1216:80 - 1200:443 #工作組:同一集群一個(gè)名字 networks: - test #建立數(shù)據(jù)集的目錄 volumes: - ./wwwroot:/usr/local/nginx/html tomcat: hostname: tomcat build: context: ./tomcat dockerfile: Dockerfile ports: - 888:8080 networks: - test networks: test: #需要建立新鏡像的服務(wù)需要放在compose工作站點(diǎn)中 [root@localhost docker_compose]# ls docker-compose.yml nginx tomcat #建立容器 “-f” 指定compose文件 docker-compose -f docker-compose.yml up -d
名稱(chēng) | 角色 | IP地址 | 預(yù)裝環(huán)境 |
---|---|---|---|
centos7-1 | master | 192.168.142.66 | Docker-ce、Compose 3、Consul、Consul-template |
centos7-2 | slave1 | 192.168.142.77 | Docker-ce、registrator |
centos7-min | slave2 | 192.168.142.136 | Docker-ce、registrator |
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
后臺(tái)啟動(dòng)
//移動(dòng)文件,方便識(shí)別 [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]+ 運(yùn)行中 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" 參與選舉為領(lǐng)袖
"-ui" 提供用戶(hù)界面
"-data-dir" 參數(shù)存儲(chǔ)位置
"-bind" 綁定地址
"-node" 定義節(jié)點(diǎn)名稱(chēng)
檢查群集
//查看群集信息 [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 //過(guò)濾leader信息 [root@localhost consul]# consul info | grep leader leader = true leader_addr = 192.168.142.66:8300
通過(guò)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 //注冊(cè)的所有服務(wù)。
curl 127.0.0.1:8500/v1/catalog/nginx //查看nginx服務(wù)信息
curl 127.0.0.1:8500/v1/catalog/nodes //集群節(jié)點(diǎn)詳細(xì)信息
使節(jié)點(diǎn)服務(wù)器中的容器自動(dòng)加入
//安裝registrator(注冊(cè)器) //該工具可檢查容器運(yùn)行狀態(tài)自動(dòng) 進(jìn)行注冊(cè),還可注銷(xiāo)docker容器的服務(wù) [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
測(cè)試功能是否正常
[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
驗(yàn)證群集是否建立成功
瀏覽器中輸入http://192.168.142.66:8500
,單擊“NODES”,然后點(diǎn)擊“consurl-seerver01”,即可看到五個(gè)服務(wù)(圖形化界面)
手工編譯安裝nginx
沒(méi)啥說(shuō)的,裝唄。版本:nginx1.12.0
安裝consul-template
template屬于守護(hù)進(jìn)程,用于實(shí)時(shí)查詢(xún)consul集群信息,并實(shí)時(shí)使用模板進(jìn)行配置文件的生成。
[root@localhost ~]# unzip consul-template_0.19.3_linux_amd64.zip //啟用template命令 [root@localhost ~]# mv consul-template /usr/bin/
編寫(xiě)nginx配置文件模板
[root@localhost consul]# vim nginx.ctmpl //nginx配置文件的模板 upstream http_backend { //服務(wù)器池的名稱(chēng) {{range service "nginx"}} server {{.Address}:{{.Port}}; //調(diào)用變量:服務(wù)器節(jié)點(diǎn)的地址和端口 {{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 / { //請(qǐng)求頭部信息的設(shè)定 proxy_set_header HOST $host; proxy_set_header X-Real-IP $remote_addr; //后端服務(wù)器IP proxy_set_header Client-IP $remote_addr; //client的IP proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; //forward跳轉(zhuǎn)地址 proxy_pass http://http_backend; //請(qǐng)求跳轉(zhuǎn)給http_backend服務(wù)器池 } }
進(jìn)行配置
//更改nginx配置文件 [root@localhost nginx-1.12.0]# vim /usr/local/nginx/conf/nginx.conf //在18行下插入以下內(nèi)容 include vhost/\*.conf; //添加include方便nginx識(shí)別模板生成的配置文件 //此時(shí)還沒(méi)有這個(gè)文件,需要去創(chuàng)建 [root@localhost nginx-1.12.0]# cd /usr/local/nginx/conf/ [root@localhost conf]# mkdir vhost //創(chuàng)建虛擬機(jī)目錄 //啟用template模板(啟用后會(huì)進(jìn)入監(jiān)控模式) [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” #后方從左到右分別為:模板文件路徑、生成的配置文件名稱(chēng)、重載nginx
“--log-level” #寫(xiě)入日志的等級(jí)
關(guān)于“Docker原生編排工具怎么用”這篇文章就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,使各位可以學(xué)到更多知識(shí),如果覺(jué)得文章不錯(cuò),請(qǐng)把它分享出去讓更多的人看到。