企業運維實戰--Docker三劍客二之docker-compose
- 前言-docker compose簡介
- docker compose實踐
- docker-compose安裝
- docker-compose配置haproxy+nginx負載均衡
前言-docker compose簡介
Docker Compose是一種編排服務,基于pyhton語言實作,是一個用于在 Docker 上定義并運行復雜應用的工具,可以讓用戶在集群中部署分布式應用,用戶可以很容易地用一個組態檔定義一個多容器的應用,然后使用一條指令安裝這個應用的所有依賴,完成構建,
解決了容器與容器之間如何管理編排的問題,
Docker Compose 中有兩個重要的概念:
服務 (service) :一個應用的容器,實際上可以包括若干運行相同鏡像的容器實體,
專案 (project) :由一組關聯的應用容器組成的一個完整業務單元,在 docker-compose.yml 檔案中定義,

docker compose實踐
docker-compose安裝
與docker-machine類似將二進制包移動到/usr/local/bin/docker-compose即可

用戶在命令列輸入命令后,系統會在環境變數$PATH內找命令,


docker-compose配置haproxy+nginx負載均衡
家目錄下創建專案目錄
mkdir compose
撰寫主組態檔,docker-compose在up的時候會自動讀取
cat docker-compose.yml
version: "3.8"
services:
web1:
image: nginx
networks:
- webnet
lumes:
- ./web1:/usr/share/nginx/html #掛載資料卷為nginx默認發布檔案
web2:
image: nginx
networks:
- webnet
lumes:
- ./web2:/usr/share/nginx/html #掛載資料卷為nginx默認發布檔案
haproxy:
image: haproxy
networks:
- webnet
volumes:
- ./haproxy:/usr/local/etc/haproxy #資料卷為haproxy需要修改的主組態檔
ports:
- "80:80" #埠映射本機的80埠映射容器內的80埠
networks:
webnet: #網路連接方式為webnet
創建haproxy目錄并編輯修改haproxy.cfg的主組態檔
cat haproxy/haproxy.cfg
#
# This is a sample configuration. It illustrates how to separate static objects
# traffic from dynamic traffic, and how to dynamically regulate the server load.
#
# It listens on 192.168.1.10:80, and directs all requests for Host 'img' or
# URIs starting with /img or /css to a dedicated group of servers. URIs
# starting with /admin/stats deliver the stats page.
#
global
maxconn 65535
stats socket /var/run/haproxy.stat mode 600 level admin
log 127.0.0.1 local0
uid 200
gid 200
daemon
defaults
mode http
log global
option httplog
option dontlognull
monitor-uri /monitoruri
maxconn 8000
timeout client 30s
retries 2
option redispatch
timeout connect 5s
timeout server 5s
stats uri /admin/stats
# The public 'www' address in the DMZ
frontend public
bind *:80 name clear #監聽所有ip的80埠
#bind 192.168.1.10:443 ssl crt /etc/haproxy/haproxy.pem
#use_backend static if { hdr_beg(host) -i img }
#use_backend static if { path_beg /img /css }
default_backend dynamic
# The static backend backend for 'Host: img', /img and /css.
backend dynamic
balance roundrobin
server a web1:80 check inter 1000
server b web2:80 check inter 1000
查看默認發布檔案內容
cat web1/index.html
web1
cat web2/index.html
web2
查看~/compose結構
tree ~/compose

啟動服務,-d打入后臺
docker-compose up -d

查看compose行程狀態,全為up表示狀態健康
docker-compose ps

訪問測驗
curl 172.25.9.1

容器內haproxy+nginx負載均衡配置完成,
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/290053.html
標籤:其他
