Docker compose 管理多個Docker容器組網實現負載均衡的方案


Compose 是用於定義和運行多容器 Docker 應用程序的工具。通過 Compose 可以使用 YML 文件來配置應用程序需要的所有服務。然后,使用一個命令,就可以從 YML 文件配置中創建並啟動所有服務。他是用來描述和處理復雜的但是又具有統一性和可預測性的形式來管理應用程序,他的描述文件里包含了卷、網絡、容器等詳細內容,通過 Compose 文件可以組成一個應用程序以及描述他們之間的關系。

這個案例筆記是在之前的多個Docker容器組網實現負載均衡的方案的基礎上改進的,有關 docker compose 教程參考 docker compose 介紹

docker compose 文件

version: '3.8'

networks:
  blogfrontend:
  blogbackend:

volumes:
  blogdata:

services:
  blogmysql:
    restart: always
    image: "mysql:latest"
    ports:
      - 3307:3306
    volumes:
      - blogdata:/var/lib/mysql
    networks:
      - blogbackend
    environment:
      MYSQL_ROOT_PASSWORD: 123456
      BIND-ADDRESS: 0.0.0.0
    command:
      --lower_case_table_names=1

  blogweb:
    restart: always
    build: 
      context: .
      dockerfile: Dockerfile
    networks:
      - blogbackend
      - blogfrontend
    environment:
      DBNAME: appsoft
      DBHOST: blogmysql
      DBPORT: 3306
      DBPWD: 123456
    depends_on:
      - blogmysql #連接數據庫

  balance:
    restart: always
    image: dockercloud/haproxy:1.2.1
    ports:
      - 9000:80
    links:
      - blogweb
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
    networks:
      - blogfrontend

docker compose 服務包括以下內容

  • mysql 服務
  • mvc 項目服務
  • 負載均衡服務

compose 服務中有兩個網絡,后台網絡(blogbackend)使 mysql 和 mvc 連接;前台網絡(blogfrontend)使 mvc 和 負載均衡(balance)連接。

構建

docker-compose build

啟動

docker-compose up

水平伸縮擴展服務

docker-compose scale blogweb=6

刪除

docker-compose down
# docker-compose down -v # 刪除並刪除掛載

1647524320635

以上操作是部署在本地 windows 開發環境的。在 linux 上部署可以使用本地 vscode ssh遠程連接 linux 服務器將代碼下載到服務器后直接使用 docker compose 構建運行。后續再改用CI/CD。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM