Matomo 官方 Docker 镜像部署实战:容器化运行、数据持久化、环境变量与日志导入 文档【免费下载链接】docsDocumentation for Docker Official Images in docker-library项目地址https://gitcode.com/gh_mirrors/docs/docs点击查看免费下载Matomo原名 Piwik是领先的开源 Web 分析平台其 Docker 官方镜像以matomo为镜像名在 Docker Hub 发布本文档目录中的 matomo/content.md 即是该镜像官方描述的核心源文件。本文围绕这份官方文档讲解如何用 Docker 快速拉起 Matomo 分析服务、如何挂载卷持久化数据、如何通过环境变量预配置数据库连接与 PHP 内存限制以及如何借助官方提供的日志导入脚本将历史访问日志回灌进 Matomo读完后你可以独立完成一套容器 MySQL/MariaDB的 Matomo 分析平台部署。Matomo 是什么Matomo 是一个开源、可自托管的网站分析平台与数据归第三方的 SaaS 分析工具不同它强调免费开源软件Free open-source software100% 数据所有权100% data ownership用户隐私保护User privacy protection以用户为中心的洞察User-centric insights可定制、可扩展Customisable and extensible这些核心定位直接来自官方文档 matomo/content.md也是评估为什么用容器自托管 Matomo的出发点所有访问统计、报表数据都保存在你自己的数据库里。在 Docker 官方镜像体系中matomo镜像由 Matomo 社区维护者维护见 matomo/maintainer.md并在 matomo/metadata.json 中被归入monitoring-and-observability监控与可观测性分类。快速开始一条命令启动 Matomo官方文档给出的最简启动方式如下docker run -d --link some-mysql:db matomo这条命令有两个前提条件你已经先启动了一个合适的MySQL 或 MariaDB数据库容器文档明确说明 This assumes youve already launched a suitable MySQL or MariaDB database container通过--link some-mysql:db将数据库容器以别名db链接进 Matomo 容器容器内部即可用主机名db访问数据库。启动后浏览器访问容器映射的 HTTP 端口即可进入 Matomo 的图形化配置向导页面。说明--link是 Docker 早期的容器互联方式。在较新的 Docker 环境中更推荐的做法是让 Matomo 与数据库加入同一个自定义 bridge 网络例如docker network create matomo-net再通过服务名互相访问--link的写法仍可用但更多被 Compose 或自定义网络取代下文 Compose 示例即采用网络方式。数据持久化挂载卷保存站点数据Matomo 的应用代码与配置、插件、上传的 GeoIP 数据库等文件默认位于容器内的/var/www/html。如果不做持久化容器一旦被删除这些数据就会丢失。官方文档给出的持久化命令docker run -d -p 8080:80 --link some-mysql:db -v matomo:/var/www/html matomo参数拆解-p 8080:80把容器内 Apache 的 80 端口映射到宿主机的 8080 端口之后通过http://localhost:8080访问-v matomo:/var/www/html创建名为matomo的 Docker 命名卷并挂载到 Web 根目录/var/www/html使站点文件在容器重建后依然保留--link some-mysql:db同上连接数据库容器。数据库本身的数据则由 MySQL/MariaDB 容器自己的卷负责Matomo 容器卷与数据库卷各司其职两者都需要纳入备份策略。安装向导数据库连接配置容器启动后首次访问会进入Matomo 配置向导configuration wizard。官方文档特别指出如果使用官方.examples目录中的 compose 文件在向导的Database Setup数据库设置步骤中应填写向导字段填写内容Database Server数据库服务器dbLogin登录名MYSQL_USERPassword密码MYSQL_PASSWORDDatabase Name数据库名MYSQL_DATABASE其余字段保持默认即可。这里的MYSQL_USER、MYSQL_PASSWORD、MYSQL_DATABASE是 MySQL/MariaDB 容器启动时通过环境变量预先创建的账号与数据库例如MYSQL_DATABASE指定自动创建的数据库名、MYSQL_USER/MYSQL_PASSWORD指定该库的专用账号。Database Server填db是因为 compose 中数据库服务的服务名就是db。完成数据库设置后向导会继续引导创建超级用户super user账号用于登录 Matomo 后台进行站点管理、统计报表查看等操作。用环境变量预配置 Matomo 实例除了在向导中手动输入数据库信息官方镜像还支持通过以下环境变量直接注入 Matomo 配置从而让实例在首次启动时就指向正确的数据库环境变量作用MATOMO_DATABASE_HOST数据库服务器主机名MATOMO_DATABASE_ADAPTER数据库适配器官方镜像默认面向 MySQL/MariaDB 场景对应适配器为PDO\MYSQLMATOMO_DATABASE_TABLES_PREFIXMatomo 数据表前缀默认通常为matomo_用于多实例共用数据库时避免表名冲突MATOMO_DATABASE_USERNAME数据库用户名MATOMO_DATABASE_PASSWORD数据库密码MATOMO_DATABASE_DBNAME数据库名这些变量的含义从命名即可对应到 Matomo 的数据库连接配置即config/config.ini.php中的database段。通过环境变量注入配置后即使不进入图形向导容器也能完成数据库初始化的关键环节便于脚本化、自动化部署。此外PHP 内存限制可以用如下环境变量调整环境变量作用PHP_MEMORY_LIMIT设置 Matomo 容器内 PHP 进程的内存上限例如2048M当站点访问量较大、报表聚合任务较重时可适当调高这一变量的存在意味着镜像的 PHP 运行时Apache 或 FPM 变体会读取该环境变量并据此覆盖默认内存限制适合在内存富余的机器上为统计分析任务预留更多 PHP 内存。Docker Compose 部署与日志导入官方文档提到镜像仓库的.examples目录中提供了一套最小化的 Docker Compose 配置该目录位于 Matomo 镜像的维护仓库matomo-org/docker中本 docs 仓库的 update.sh 会把这些说明合并进最终 README。基于文档中出现的db服务名、MYSQL_*环境变量以及matomo-app-1容器命名约定可以推断出 Compose 编排中 Matomo 服务与数据库服务的配合方式。一个与文档行为一致的最小化compose.yaml示例大致如下services: app: image: matomo restart: always ports: - 8080:80 environment: MATOMO_DATABASE_HOST: db MATOMO_DATABASE_USERNAME: exampleuser MATOMO_DATABASE_PASSWORD: examplepass MATOMO_DATABASE_DBNAME: exampledb volumes: - matomo:/var/www/html db: image: mariadb:10 restart: always environment: MARIADB_DATABASE: exampledb MARIADB_USER: exampleuser MARIADB_PASSWORD: examplepass MARIADB_ROOT_PASSWORD: example-root-pass volumes: - db:/var/lib/mysql volumes: matomo: db:其中db服务名正是向导中Database Server字段要填写的dbMARIADB_DATABASE/MARIADB_USER/MARIADB_PASSWORD或 MySQL 镜像对应的MYSQL_DATABASE/MYSQL_USER/MYSQL_PASSWORD则分别对应向导中的Database Name/Login/Password三栏。使用日志导入脚本回灌历史访问日志官方文档还给出了利用容器执行 Matomo 内置 Python 日志导入脚本import_logs.py的命令。该脚本位于镜像内/var/www/html/misc/log-analytics/import_logs.py作用是把 Web 服务器产生的访问日志如 Nginx/Apache 的 access.log解析并导入 Matomo从而补齐历史统计docker run --rm --volumes-frommatomo-app-1 --link matomo-app-1 python:3-alpine python /var/www/html/misc/log-analytics/import_logs.py --urlhttp://ip.of.your.matomo.example --loginyourlogin --passwordyourpassword --idsite1 --recorders4 /var/www/html/logs/access.log命令要点说明--volumes-frommatomo-app-1复用运行中的 Matomo 容器Compose 项目名为matomo、服务名为app时容器即被命名为matomo-app-1挂载的卷这样临时容器能直接读到/var/www/html下的脚本与日志文件--link matomo-app-1让临时容器能访问 Matomo 所在容器python:3-alpine临时使用带 Python 3 的 Alpine 基础镜像来执行脚本脚本参数--urlhttp://ip.of.your.matomo.exampleMatomo 服务器地址--loginyourlogin/--passwordyourpassword用于认证的 Matomo 用户账号与密码--idsite1目标站点 ID--recorders4并行 recorder 进程数可加快大日志文件的导入速度位置参数/var/www/html/logs/access.log待导入的日志文件路径。由于临时容器使用--rm任务执行完毕后容器会自动清理不会留下额外运行实例适合以一次性任务的方式按需导入日志。镜像变体与版本标签根据 matomo/README.md 中生成的标签列表当前官方镜像提供三种变体变体对应标签特点Apache 变体默认5.14.0-apache、5.14-apache、5-apache、apache、5.14.0、5.14、5、latest内含 Apache mod_php 的完整 Web 服务直接暴露 HTTP 端口即可使用适合大多数场景FPM 变体5.14.0-fpm、5.14-fpm、5-fpm、fpm仅包含 PHP-FPM需要配合独立的 Nginx 等 Web 服务器反代使用Alpine FPM 变体5.14.0-fpm-alpine、5.14-fpm-alpine、5-fpm-alpine、fpm-alpine基于 Alpine Linux 的 FPM 变体镜像体积更小适合对最终镜像体积敏感的场景其中latest指向 Apache 默认变体fpm-alpine是体积最小的官方组合。镜像支持的架构包括amd64、arm32v5、arm32v6、arm32v7、arm64v8、i386、ppc64le、riscv64、s390x等可覆盖大多数服务器与嵌入式平台。注意事项GeoIP 与许可GeoIP 数据说明官方文档中有一条与地理定位相关的重要提示matomo/content.md 的 GeoIP 一节镜像产品中原本包含由 MaxMind 提供的 GeoLite 数据但 MaxMind 自 2019 年 12 月起对 GeoLite2 数据库的获取与使用方式做了重大调整相关内容见其官方博客公告因此相关声明已被划线标注为失效。这意味着在新版本中Matomo 的 GeoIP 定位功能可能需要你自己另行获取并配置合规的 GeoIP 数据库例如在/var/www/html/misc/目录挂载相应数据库文件部署时请留意这一点。许可说明镜像内所包含软件Matomo 本体及其依赖的许可信息见 matomo/license.md官方要求查看 Matomo 项目的LEGALNOTICE文件确认许可细节。同时Docker 镜像通常还包含基础发行版如 Apache、Bash、PHP 及其依赖等其他可能受不同许可约束的软件最终使用前应由使用者自行确认镜像内所有软件的许可合规性。深入理解这份文档在仓库中如何生成本仓库docker-library/docs维护着每个官方镜像的 README 源材料。matomo/目录下存放的 matomo/content.md 是镜像描述的正文源文件而根目录的 update.sh 负责把content.md连同标签、架构、Logo、许可等字段占位符形如%%IMAGE%%、%%LOGO%%、%%GITHUB-REPO%%合并进 .template-helpers/template.md 定义的模板最终生成完整的 matomo/README.md。所以你在 Docker Hub 上看到的 Matomo 官方镜像说明正文核心即来自本文所依据的content.md。需要查看镜像标签与 Dockerfile 对应关系时直接查阅 README 中的标签列表即可。小结从单条docker run命令、命名卷持久化、安装向导的数据库填写到MATOMO_DATABASE_*系列环境变量、PHP_MEMORY_LIMIT、Compose 编排以及import_logs.py历史日志导入官方文档给出了一个完整的 Matomo 容器化部署路径。实际生产部署时建议始终挂载/var/www/html卷、通过环境变量注入数据库连接以支持可重复部署、将db与app放入同一网络、并定期备份 Matomo 卷与数据库卷若站点规模较大可考虑 FPM 变体配合独立 Nginx 以获得更灵活的 PHP 进程管理。赞分享文档【免费下载链接】docsDocumentation for Docker Official Images in docker-library项目地址https://gitcode.com/gh_mirrors/docs/docs点击查看免费下载相关推荐Matomo Docker 官方镜像完整使用指南快速部署、持久化、安装向导与日志导入Matomo Docker 官方镜像完整使用指南快速部署、持久化、安装向导与日志导入 Matomo原 Piwik是一款开源、注重隐私保护的网站分析平台而文档vLLM Docker 部署实战指南官方镜像运行、编译缓存持久化与非 Root 容器实践vLLM Docker 部署实战指南官方镜像运行、编译缓存持久化与非 Root 容器实践 本文基于 vLLM 仓库的 Docker 部署文档完整讲解 vll人工智能大模型模型推理服务推理引擎本地部署Rundeck 官方 Docker 镜像部署与配置实战指南持久化、安全、SSH 密钥与全部环境变量详解Rundeck 官方 Docker 镜像部署与配置实战指南持久化、安全、SSH 密钥与全部环境变量详解 本篇技术指南以仓库中 docker/official/运维任务调度后端上一篇css-loaders与CSS变量实现动态主题的加载动画下一篇Windows UI Library 终极指南如何快速构建现代化Windows应用界面创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考