Docker - 設定 Flame



Flame 是一個自託管的伺服器起始頁和儀表盤。受 SUI 啟發,Flame 旨在為您提供一個管理和組織伺服器應用程式、服務或連結的中心位置。此外,Flame 具有身份驗證機制,可以保護您的書籤、程式和設定。它經常用作家庭實驗室、個人伺服器和雲環境中的自定義應用程式中心。

在本章中,我們將討論將 Flame docker 化的步驟。使用 Docker 設定 Flame 將允許您在容器中執行 Flame,而無需手動配置它並修改不同環境的設定。

Docker 化 Flame 的先決條件

在開始本指南之前,請確保您具備以下先決條件:

  • Docker 應用程式 - 確保您在本地機器上安裝了 Docker。您可以從 Docker 官方網站 下載它。如果您具備 Docker 的基本知識,將更有幫助。
  • Docker Compose - 如果你想透過 Docker Compose 使用 Docker 設定 Flame,請確保你的機器上安裝了 Docker Compose。您可以從 這裡 下載它。
  • 命令列介面 (CLI) - 對命令列介面 (CLI) 及其命令的基本瞭解將有助於您更好地理解本指南。
  • 文字編輯器 - 編寫配置檔案需要一個文字編輯器,例如 VSCode 或 Sublime Text。

設定 Flame 專案

擁有 Docker 映象對於執行您的容器是必要的,因為它包含所有指令和資訊,例如構成您的應用程式的服務、環境變數、資料庫等。

您可以建立一個自定義 Flame 專案,它將充當您的容器的 Docker 映象,或者您可以提取預構建的 Docker 映象。建立自定義映象可以讓您更好地控制環境。

在本節中,我們將解釋如何建立自定義 Flame 專案。

步驟 1:建立專案目錄

建立一個專案目錄,用於儲存與 Flame 相關的所有檔案。

# Create a folder named flame-docker
$ mkdir flame-docker

# Navigate into the directory
$ cd flame-docker
Flame Create a Project Directory

步驟 2:建立一個基本的 Dockerfile

接下來,建立一個稍後將填充的 Dockerfile。此 Dockerfile 將包含生成 Docker 映象所需的所有指令。

Flame Create a Basic Directory

在文字編輯器中開啟 Dockerfile 並向其中新增以下內容:

# Base image for Flame
FROM pawelmalak/flame:latest

# Expose the default Flame port
EXPOSE 5005

基礎映象設定為 pawelmalak/flame,公開的埠為 5005。

步驟 3:構建自定義 Docker 映象

建立 Dockerfile 後,就可以建立自定義 Docker 映象了,它將包含執行容器的所有指令。

# Build the Docker image with the tag "my-flame"
$ docker build -t my-flame .
Flame Build a custom Docker Image

步驟 4:執行 Flame 容器

$ docker run -d --name flame -p 5005:5005 my-flame
Run the Flame Container

步驟 5:使用卷持久化資料

Flame 將其配置和資料(例如書籤和設定)儲存在本地 JSON 檔案中。但是,此資料不是持久的,因為一旦您刪除容器,您將丟失所有資料。為避免這種情況,您可以使用 Docker 卷。

Docker 卷允許您永久儲存資料,即使您刪除了容器。

$ docker run -d --name flame -p 5005:5005 -v ./flame-data:/app/data my-flame
Flame Persisting Data with Volumes

步驟 6:訪問 Flame 儀表盤

現在我們的 Flame 容器正在執行,您可以在瀏覽器中訪問 localhost:5005 來訪問 Flame 儀表盤。

Access the Flame Dashboard

使用預構建的 Docker 映象

如果您不想建立自定義 Docker 映象,您可以簡單地使用 Flame 的預構建官方 Docker 映象來在 Docker 中安裝 Flame。

步驟 1:拉取 Flame 映象

在執行 Flame 容器之前,您需要拉取 Flame 的 Docker 映象。

$ docker pull pawelmalak/flame
Pull the Flame Image

步驟 2:執行 Flame 容器

拉取 Docker 映象後,就可以執行 Flame 容器了。

$ docker run -d --name flame -p 5005:5005 pawelmalak/flame
Run the Flame Container

其中,

  • -d = 表示分離模式,這意味著此程序將在後臺執行。
  • --name flame = 表示容器的名稱。
  • -p 5005:5005 = 將本地機器上的 5005 埠對映到 Flame 容器中的 5005 埠。這允許您透過在瀏覽器中訪問 https://:5005 來訪問 Flame 的儀表盤。
  • pawelmalak/flame = 用於建立容器的 Docker 映象的名稱。

使用 Docker Compose 設定 Flame

在本節中,我們將逐步解釋如何使用 Docker Compose 設定 Flame:

步驟 1:建立一個 docker-compose.yml 檔案

在您的 flame 目錄中建立一個 docker-compose.yml 檔案。

$ touch docker-compose.yml
Using Docker Compose to Set Up Flame

您的檔案結構現在應該如下所示:

flame-docker/
└── docker-compose.yml
└── Dockerfile
└── flame-data

步驟 2:填充 .yml 檔案

在文字編輯器中開啟您的 docker-compose.yml 檔案,並向其中新增以下配置:

version: '3'

services:
  flame:
    image: pawelmalak/flame:latest
    container_name: flame
    restart: unless-stopped
    ports:
      - 5005:5005
    volumes:
      - ./flame-data:/app/data

這裡,

  • services - 指定構成此應用程式的服務
  • image - 指定使用的 Docker 映象,在本例中為 'pawalmalak/flame'
  • container_name - 設定 Flame 容器的名稱
  • restart - 確保容器自動重啟,除非手動停止
  • ports - 將本地機器上的 5005 埠對映到容器
  • volumes - 卷用於永久儲存資料。

步驟 3:執行 Docker Compose

使用以下命令執行 docker-compose.yml 檔案。

$ docker-compose up -d
Flame Run Docker Compose

身份驗證設定

Flame 具有整合的身份驗證機制,允許您限制可以訪問儀表盤的使用者。您可以將管理員憑據儲存在 .env 檔案中,並在您的 docker-compose.yml 檔案中引用它,以實現更安全的設定。

步驟 1:建立一個 docker-compose.yml 檔案

在您的 Flame 目錄中建立一個 .env 檔案。

# Create a .env file
$ touch .env
Flame Authentication Setup

開啟 .env 檔案,並在其中新增以下環境變數

FLAME_ADMIN_USERNAME=admin
FLAME_ADMIN_PASSWORD=securepassword

步驟 2:更新 docker-compose.yml

更新您的 docker-compose.yml 檔案,並新增您的 .env 檔案的路徑。

version: '3'

services:
  flame:
    image: pawelmalak/flame:latest
    container_name: flame
    restart: unless-stopped
    ports:
      - 5005:5005
    volumes:
      - ./flame-data:/app/data
    env_file:
      - .env

步驟 3:執行 docker-compose.yml 檔案

$ docker-compose up -d
 Run docker-compose.yml file

您的更新後的檔案結構現在應該如下所示:

flame-docker/
├── Dockerfile
├── docker-compose.yml
├── .env
└── flame-data/  # Data volume for persistent storage

結論

您的 Flame 容器已成功 docker 化。您已建立了一個 Docker 映象並在您的 Docker 容器內執行它,確保在不同環境中的前後一致性。這種方法更安全,因為在 Docker 容器中執行 Flame 可以將其與其他服務隔離。如果您的容器崩潰,它根本不會影響您的系統。一致性、可移植性、管理、網路和可擴充套件性是這種方法的其他一些好處。

在 Docker 中設定 Flame 的常見問題

我們在這裡收集了一組關於如何 docker 化 Flame 容器的常見問題及其答案

1. 如果 Flame 容器終止或刪除,我的資料會發生什麼?

如果容器終止或停止,使用 Docker 卷(例如 ./flame-data:/app/data)儲存在永續性儲存上的資料不會丟失。書籤、配置檔案和設定等資料將儲存在主機上的 flame-data 目錄中。

即使您刪除了容器,Flame 也能夠訪問您的當前資料,因為您可以隨時使用相同的卷重新建立它。

2. 我可以將 Flame 與外部資料庫(如 PostgreSQL)一起使用嗎?

不可以,Flame 不需要也不支援像 MySQLPostgreSQL 這樣的第三方資料庫。Flame 的設計輕量級,並將配置和書籤儲存在本地檔案中。這些檔案儲存在 flame-data 目錄中,Docker 配置已將其安裝為卷。

Flame 預設情況下不依賴資料庫;如果您需要類似資料庫的功能,則需要自定義它或使用其他服務。

3. 如何防止對我的 Flame 例項進行意外訪問?

Flame 具有整合的身份驗證機制,允許您限制可以訪問儀表盤的使用者。您可以明確地在 docker-compose.yml 檔案或 .env 檔案中設定管理員憑據以保護 Flame。

透過在 HTTPS 啟用的反向代理後面保護 Flame 並建立防火牆規則以限制對 Flame 埠的訪問,您可以進一步增強安全性。

廣告