久久精品人人爽,华人av在线,亚洲性视频网站,欧美专区一二三

Docker原生編排工具怎么用

178次閱讀
沒有評論

共計 5835 個字符,預計需要花費 15 分鐘才能閱讀完成。

這篇文章將為大家詳細講解有關 Docker 原生編排工具怎么用,丸趣 TV 小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。

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 相同,但端口不能低于 60volumes 掛載宿主機路徑或命令卷 restart 重啟策略,默認 no,always, no-failure,unless-stopedhostname 容器主機名

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-templatecentos7-2slave1192.168.142.77Docker-ce、registratorcentos7-minslave2192.168.142.136Docker-ce、registratordocker-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 原生編排工具怎么用”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,使各位可以學到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。

正文完
 
丸趣
版權聲明:本站原創文章,由 丸趣 2023-08-17發表,共計5835字。
轉載說明:除特殊說明外本站除技術相關以外文章皆由網絡搜集發布,轉載請注明出處。
評論(沒有評論)
主站蜘蛛池模板: 田东县| 昭苏县| 财经| 万源市| 中阳县| 铜陵市| 商城县| 蕉岭县| 巢湖市| 正定县| 哈巴河县| 安顺市| 许昌市| 岫岩| 巴中市| 隆化县| 胶南市| 旅游| 阳谷县| 基隆市| 濮阳县| 会宁县| 胶南市| 从江县| 科技| 泉州市| 阳信县| 漯河市| 永修县| 昌吉市| 固安县| 松原市| 定襄县| 葵青区| 久治县| 成都市| 东源县| 龙井市| 中卫市| 思南县| 洮南市|