- Docker 教程
- Docker - 首页
- Docker - 概述
- Docker - 在 Linux 上安装
- Docker - 安装
- Docker - Hub
- Docker - 镜像
- Docker - 容器
- Docker - 仓库
- Docker - Compose
- Docker - 使用容器
- Docker - 架构
- Docker - 层
- Docker - 容器与主机
- Docker - 配置
- Docker - 容器与 Shell
- Docker - Dockerfile
- Docker - 构建文件
- Docker - 公共仓库
- Docker - 管理端口
- Docker - Web 服务器
- Docker - 命令
- Docker - 容器链接
- Docker - 数据存储
- Docker - 卷
- Docker - 网络
- Docker - 安全
- Docker - 工具箱
- Docker - 云
- Docker - 构建云
- Docker - 日志
- Docker - 持续集成
- Docker - Kubernetes 架构
- Docker - Kubernetes 的工作原理
- Docker - 生成式 AI
- Docker - 托管
- Docker - 最佳实践
- Docker 设置服务
- Docker - 设置 Node.js
- Docker - 设置 MongoDB
- Docker - 设置 NGINX
- Docker - 设置 ASP.Net
- Docker - 设置 MySQL
- Docker - 设置 Go
- Docker - 设置 Rust
- Docker - 设置 Apache
- Docker - 设置 MariaDB
- Docker - 设置 Jupyter
- Docker - 设置 Portainer
- Docker - 设置 Rstudio
- Docker - 设置 Plex
- Docker 设置 - Flame
- Docker 设置 - PostgreSQL
- Docker 设置 - Mosquitto
- Docker 设置 - Grafana
- Docker 设置 - Nextcloud
- Docker 设置 - Pawns
- Docker 设置 - Ubuntu
- Docker 设置 - RabbitMQ
- Docker - 设置 Python
- Docker - 设置 Java
- Docker - 设置 Redis
- Docker - 设置 Alpine
- Docker - 设置 BusyBox
- Docker 设置 - Traefik
- Docker 设置 - WordPress
- Docker 有用资源
- Docker - 快速指南
- Docker - 有用资源
- Docker - 讨论
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
步骤 2:创建一个基本的 Dockerfile
接下来,创建一个稍后将填充的 Dockerfile。此 Dockerfile 将包含生成 Docker 镜像所需的所有指令。
在文本编辑器中打开 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 .
步骤 4:运行 Flame 容器
$ docker run -d --name flame -p 5005:5005 my-flame
步骤 5:使用卷持久化数据
Flame 将其配置和数据(例如书签和设置)存储在本地 JSON 文件中。但是,此数据不是持久的,因为一旦您删除容器,您将丢失所有数据。为避免这种情况,您可以使用 Docker 卷。
Docker 卷允许您永久存储数据,即使您删除了容器。
$ docker run -d --name flame -p 5005:5005 -v ./flame-data:/app/data my-flame
步骤 6:访问 Flame 仪表盘
现在我们的 Flame 容器正在运行,您可以在浏览器中访问 localhost:5005 来访问 Flame 仪表盘。
使用预构建的 Docker 镜像
如果您不想创建自定义 Docker 镜像,您可以简单地使用 Flame 的预构建官方 Docker 镜像来在 Docker 中安装 Flame。
步骤 1:拉取 Flame 镜像
在运行 Flame 容器之前,您需要拉取 Flame 的 Docker 镜像。
$ docker pull pawelmalak/flame
步骤 2:运行 Flame 容器
拉取 Docker 镜像后,就可以运行 Flame 容器了。
$ docker run -d --name flame -p 5005:5005 pawelmalak/flame
其中,
- -d = 表示分离模式,这意味着此进程将在后台运行。
- --name flame = 表示容器的名称。
- -p 5005:5005 = 将本地机器上的 5005 端口映射到 Flame 容器中的 5005 端口。这允许您通过在浏览器中访问 https://127.0.0.1:5005 来访问 Flame 的仪表盘。
- pawelmalak/flame = 用于创建容器的 Docker 镜像的名称。
使用 Docker Compose 设置 Flame
在本节中,我们将逐步解释如何使用 Docker Compose 设置 Flame:
步骤 1:创建一个 docker-compose.yml 文件
在您的 flame 目录中创建一个 docker-compose.yml 文件。
$ touch docker-compose.yml
您的文件结构现在应该如下所示:
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 具有集成的身份验证机制,允许您限制可以访问仪表盘的用户。您可以将管理员凭据保存在 .env 文件中,并在您的 docker-compose.yml 文件中引用它,以实现更安全的设置。
步骤 1:创建一个 docker-compose.yml 文件
在您的 Flame 目录中创建一个 .env 文件。
# Create a .env file $ touch .env
打开 .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
您的更新后的文件结构现在应该如下所示:
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 不需要也不支持像 MySQL 或 PostgreSQL 这样的第三方数据库。Flame 的设计轻量级,并将配置和书签保存在本地文件中。这些文件保存在 flame-data 目录中,Docker 配置已将其安装为卷。
Flame 默认情况下不依赖数据库;如果您需要类似数据库的功能,则需要自定义它或使用其他服务。
3. 如何防止对我的 Flame 实例进行意外访问?
Flame 具有集成的身份验证机制,允许您限制可以访问仪表盘的用户。您可以明确地在 docker-compose.yml 文件或 .env 文件中设置管理员凭据以保护 Flame。
通过在 HTTPS 启用的反向代理后面保护 Flame 并建立防火墙规则以限制对 Flame 端口的访问,您可以进一步增强安全性。