动态

详情 返回 返回

Docker Compose 使用指南 - 1Panel 版 - 动态 详情

引言

Docker Compose 是一個用於定義和運行多容器 Docker 應用程序的工具。通過編寫 docker-compose.yml 文件,用户可以以聲明式的方式描述應用所需的服務、網絡和卷等配置。然後只需一條命令(如 docker compose up),即可自動化地創建和啓動所有服務,極大簡化了多容器應用的部署和管理流程。Docker Compose 特別適合開發、測試和本地部署場景,讓複雜的環境搭建變得簡單高效。

1Panel 除了支持通過應用商店一鍵部署常見應用外,還支持通過 Docker Compose 部署應用。通過 Docker Compose 的應用部署方式,你可以快速部署應用商店暫未支持的應用,或者對應用部署細節進行更加靈活的控制。

本文將以 Halo 開源建站工具為例,詳細介紹如何在 1Panel 中使用 Docker Compose 部署應用。

創建編排

進入 1Panel 的容器編排頁面,點擊 創建編排 按鈕,進入編排創建頁面。來源選擇默認的 編輯 即可,文件夾名稱使用 halo, 創建後的 Halo 容器編排文件路徑為 {1Panel 安裝目錄}/1panel/docker/compose/halo。
圖片

複製 Docker Compose 文件

從 Halo 官方部署文檔中複製 docker-compose.yml 文件內容,並粘貼到 1Panel 的編排創建頁面中。
這裏我們選擇使用 Halo + PostgreSQL 的組合。
圖片

修改/檢查 Docker Compose 文件

  • 根據自身需求對 docker-compose.yml 文件進行修改,這裏我們修改了以下配置:修改了 Halo 映射到宿主機的端口為 8091。
  • 修改了 Halo 的 JVM 參數為 -Xmx512m -Xms512m,增加分配個 JVM 的內存。
  • 修改了 Postgresql 數據庫的密碼為 Pwd123Halo。
version: "3"

services:
  halo:
    image: registry.fit2cloud.com/halo/halo:2.21
    restart: on-failure:3
    depends_on:
      halodb:
        condition: service_healthy
    networks:
      halo_network:
    volumes:
      - ./halo2:/root/.halo2
    ports:
-      - "8090:8090"
+      - "8091:8090"
    healthcheck:
      test: ["CMD", "curl", "-f", "http://localhost:8090/actuator/health/readiness"]
      interval: 30s
      timeout: 5s
      retries: 5
      start_period: 30s
    environment:
      # JVM 參數,默認為 -Xmx256m -Xms256m,可以根據實際情況做調整,置空表示不添加 JVM 參數
      - JVM_OPTS=-Xmx256m -Xms256m
-      - JVM_OPTS=-Xmx256m -Xms256m
+      - JVM_OPTS=-Xmx512m -Xms512m
    command:
      - --spring.r2dbc.url=r2dbc:pool:postgresql://halodb/halo
      - --spring.r2dbc.username=halo
      # PostgreSQL 的密碼,請保證與下方 POSTGRES_PASSWORD 的變量值一致。
-      - --spring.r2dbc.password=openpostgresql
+      - --spring.r2dbc.password=Pwd123Halo
      - --spring.sql.init.platform=postgresql
      # 外部訪問地址,請根據實際需要修改
      - --halo.external-url=http://localhost:8090/
  halodb:
    image: postgres:15.4
    restart: on-failure:3
    networks:
      halo_network:
    volumes:
      - ./db:/var/lib/postgresql/data
    healthcheck:
      test: [ "CMD", "pg_isready" ]
      interval: 10s
      timeout: 5s
      retries: 5
    environment:
-      - POSTGRES_PASSWORD=openpostgresql
+      - POSTGRES_PASSWORD=Pwd123Halo
      - POSTGRES_USER=halo
      - POSTGRES_DB=halo
      - PGUSER=halo

networks:
  halo_network:

docker-compose.yml 文件修改完成後,點擊 確認 按鈕,即可創建 Halo 容器編排應用。
圖片
等待提示任務成功後,Halo 容器編排應用創建完成。可以通過 http://{1Panel 服務器 IP}:8091 訪問 Halo 應用進行測試。
圖片

創建反向代理

1Panel 提供的網站管理功能,可以快速創建一個反向代理,將域名指向 Halo 應用。還可以快速申請並配置 SSL 證書,讓網站訪問更加安全。同時 1Panel 專業版還可以給 Halo 網站提供網站訪問監控、WAF 防火牆等高級功能。

進入網站管理頁面,點擊 創建網站 按鈕,網站類型選擇 反向代理。填寫準備好的域名,例如 halo.demo.com(域名需要提前在域名服務商處添加解析記錄),代理地址填寫上一步創建的容器編排應用的訪問地址 http://{1Panel 服務器 IP}:8091 ,點擊 確認 按鈕即可快速完成 Halo 反向代理的創建。
圖片
創建完成後,使用瀏覽器訪問 http://halo.demo.com 即可訪問新創建的 Halo 應用。

user avatar xiuji 头像 dhan 头像 hankin_liu 头像 coulthard 头像 u_16077267 头像 vivo_tech 头像 tencent_blueking 头像 zdyz 头像 ydswin 头像 infodator 头像 gaodadepijiu 头像 user_p8ybhj2y 头像
点赞 23 用户, 点赞了这篇动态!
点赞

Add a new 评论

Some HTML is okay.