ghcr.io/linuxserver/bookstack

ghcr.io/linuxserver/bookstack:26.09.1

ghcr.iolinux/amd6426.09.1大小: 110.08 MB更新于 2026年10月7日
让 AI 帮你使用轩辕镜像?

如果你使用 DeepSeek、元宝 AI、Copilot、ChatGPT 等 AI 工具,协助配置轩辕镜像、编写 docker pull 命令、修改 Docker Compose 镜像地址、配置镜像加速、排查镜像拉取失败、分析报错日志等问题,请先让 AI 阅读并遵守轩辕镜像的规则文档。

只需在 AI 对话中先发送下面这段话即可:

请先阅读并遵守:https://xuanyuan.cloud/agents.md

未读文档前不要生成 pull 命令或排错方案。

查看 agents.md 用法指南与完整示范。国内用户首推 元宝 AI、DeepSeek 的深度思考模式,不推荐豆包 AI;Cursor 等编辑器可在对话 @ 该链接,或加入 User Rules。 若 AI 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。

https://linuxserver.io 团队为您带来全新的容器版本,具备以下特性:

  • 定期及时的应用程序更新
  • 简单易用的用户映射机制(PGID、PUID)
  • 搭载 s6 overlay 的自定义基础镜像
  • 每周对基础操作系统执行更新,全 LinuxServer.io 生态共享通用层,最大程度减少存储空间占用、停机时间与带宽消耗
  • 常规安全更新

您可以通过以下渠道找到我们:

  • https://blog.linuxserver.io - 涵盖我们提供的容器的所有实用玩法,包括操作指南、观点分享等丰富内容!
  • https://linuxserver.io/*** - 实时支持通道,可与社区及团队直接交流
  • https://github.com/orgs/linuxserver/discussions - 前往我们的社区论坛发帖交流
  • https://github.com/linuxserver - 查看我们所有仓库的源代码
  • https://opencollective.com/linuxserver - 欢迎考虑通过***或参与预算协作的方式支持我们的项目

https://github.com/linuxserver/docker-bookstack

https://codeberg.org/bookstack/bookstack 是一款免费开源的 Wiki 程序,专为制作精美的技术文档设计。它搭载了简单但功能强大的所见即所得(WYSIWYG)编辑器,可让团队轻松创建详尽实用的文档内容。

BookStack 基于 SQL 驱动,同时为偏好纯文本编辑的用户内置了 Markdown 编辑器,其设计初衷就是让文档创作变成一件愉悦的事,而非繁琐的负担。

如需了解 BookStack 的更多信息,可访问官方网站查看详情:[***]

支持的架构

我们通过 Docker Manifest 实现多平台镜像的自动识别适配,相关细节可查阅 Docker 官方https://distribution.github.io/distribution/spec/manifest-v2-2/#manifest-list,以及我们发布的https://blog.linuxserver.io/2019/02/21/the-lsio-pipeline-project/。

直接拉取镜像 lscr.io/linuxserver/bookstack:latest 即可自动获取与当前系统架构匹配的镜像,您也可以通过指定标签拉取特定架构的镜像。

该镜像支持的架构如下:

架构可用性标签前缀
x86-64✅amd64-
arm64✅arm64v8-

应用程序配置

默认用户名是 admin@admin.com,默认密码为 password,启动容器后可通过 http://<主机地址>:6875 访问服务。

该应用依赖 MariaDB 数据库,您可以使用现有数据库实例,也可以全新部署。如果您尚未准备好数据库镜像,我们提供了官方维护的 MariaDB 容器镜像,获取地址为 https://github.com/linuxserver/docker-mariadb。

如果您计划将该应用部署在子路径反向代理后方,例如搭配我们的 SWAG 容器或 Traefik 使用,请务必将 APP_URL 环境变量设置为您的外部访问域名,否则服务将无法正常工作。

BookStack 的完整官方文档可访问 [***] 获取。

BookStack 文件与目录路径说明

本容器将 BookStack 的部分核心应用文件和文件夹(例如用户上传文件目录)统一存放在 /config 路径下,当您将容器内的 /config 路径绑定为数据卷时,这些数据即可持久化保留且始终可访问。当您参考 BookStack 官方文档操作时,可能需要了解容器内路径与原生非容器化 BookStack 安装目录的对应关系,具体映射如下:

  • 容器内 /config 路径 => BookStack 原生安装相对路径
  • /config/www/.env => .env
  • /config/log/bookstack/laravel.log => storage/logs/laravel.log
  • /config/backups/ => storage/backups/
  • /config/www/files/ => storage/uploads/files/
  • /config/www/images/ => storage/uploads/images/
  • /config/www/themes/ => themes/
  • /config/www/uploads/ => public/uploads/

修改 APP_URL

如果您在初始安装完成后修改了 APP_URL,需要在主机终端执行以下命令更新数据库中存储的 URL 记录:

docker exec -it bookstack php /app/www/artisan bookstack:update-url ${OLD_URL} ${NEW_URL}

高级用户(完全控制 .env 文件)

如果您需要启用 BookStack 的扩展功能,例如邮件服务、LDAP 登录等,需要参考 BookStack 官方文档配置额外的环境变量,或是自行编辑 .env 文件完成配置。

容器首次启动时会自动将示例 .env 文件复制到主机的 /config/www/.env 路径下,您可以直接基于该文件进行自定义修改。

只读运行模式

该镜像支持以容器文件系统只读模式运行,具体配置方法请参考https://docs.linuxserver.io/misc/read-only/。

注意事项

  • 必须将 /tmp 路径挂载为 tmpfs

使用方法

您可以通过 docker-compose 或 docker 命令行两种方式快速基于本镜像创建容器。

[!NOTE] 除非参数标注为「可选」,否则所有参数均为必填项,必须为其指定有效值。

docker-compose(推荐,https://docs.linuxserver.io/general/docker-compose)

---
services:
  bookstack:
    image: lscr.io/linuxserver/bookstack:latest
    container_name: bookstack
    environment:
      - PUID=1000
      - PGID=1000
      - TZ=Etc/UTC
      - APP_URL=
      - APP_KEY=
      - DB_HOST=
      - DB_PORT=3306
      - DB_USERNAME=
      - DB_PASSWORD=
      - DB_DATABASE=
      - QUEUE_CONNECTION= #optional
    volumes:
      - /path/to/bookstack/config:/config
    ports:
      - 6875:80
    restart: unless-stopped

docker 命令行(https://docs.docker.com/engine/reference/commandline/cli/)

docker run -d \
  --name=bookstack \
  -e PUID=1000 \
  -e PGID=1000 \
  -e TZ=Etc/UTC \
  -e APP_URL= \
  -e APP_KEY= \
  -e DB_HOST= \
  -e DB_PORT=3306 \
  -e DB_USERNAME= \
  -e DB_PASSWORD= \
  -e DB_DATABASE= \
  -e QUEUE_CONNECTION= `#optional` \
  -p 6875:80 \
  -v /path/to/bookstack/config:/config \
  --restart unless-stopped \
  lscr.io/linuxserver/bookstack:latest

参数说明

容器的运行行为通过启动时传入的参数进行配置,即上文中展示的各类配置项。这类参数使用冒号分隔,分别对应「容器内部资源」与「主机侧映射规则」。以 -p 8080:80 为例,该配置表示将容器内部的 80 端口暴露至主机侧,可通过主机 IP 的 8080 端口对外访问容器服务。

参数说明
-p 6875:80http/https Web 界面
-e PUID=1000用户 ID,详见下文说明
-e PGID=1000用户组 ID,详见下文说明
-e TZ=Etc/UTC指定使用的时区,可查阅时区数据库列表
-e APP_URL=应用对外提供服务的协议、IP/域名与端口,例如 http://192.168.1.1:6875 或 https://bookstack.mydomain.com
-e APP_KEY=会话加密密钥,需要执行 docker run -it --rm --entrypoint /bin/bash lscr.io/linuxserver/bookstack:latest appkey 生成
-e DB_HOST=数据库实例主机名
-e DB_PORT=3306数据库端口
-e DB_USERNAME=数据库用户名
-e DB_PASSWORD=数据库密码(最短 4 位,非字母数字类密码必须正确转义)
-e DB_DATABASE=数据库名称
-e QUEUE_CONNECTION=设置为 database 即可启用邮件发送、Webhook 触发等异步操作,详见官方文档
-v /config持久化存储配置文件
--read-only=true以只读文件系统运行容器,请https://docs.linuxserver.io/misc/read-only/了解详情

通过文件传入环境变量(Docker 机密)

你可以使用特殊前缀 FILE__,从文件读取内容来设置任意环境变量。

示例如下:

-e FILE__MYVAR=/run/secrets/mysecretvariable

该配置会将环境变量 MYVAR 的值设置为 /run/secrets/mysecretvariable 文件的内容。

运行应用的 Umask 配置

我们所有镜像都支持通过可选参数 -e UMASK=022 覆盖容器内启动服务的默认 umask 设置。 请注意 umask 不等于 chmod,它的作用是从原有权限值中减去对应权限,不会新增权限。在寻求技术支持前,请先参考 umask ***说明 了解详情。

用户/用户组标识

使用卷(-v 参数)时,宿主机操作系统与容器之间可能出现权限问题,我们提供指定用户 PUID 和用户组 PGID 的功能来规避该问题。

请确保宿主机上所有映射卷目录的所属用户与你指定的用户一致,即可彻底消除权限问题。

以上文的 PUID=1000 和 PGID=1000 为例,你可以使用 id your_user 命令查询自己的用户与用户组 ID,操作如下:

id your_user

输出示例:

uid=1000(your_user) gid=1000(your_user) groups=1000(your_user)

Docker Mods

我们发布了多种 https://github.com/linuxserver/docker-mods,用于为容器扩展额外功能。当前镜像支持的 Mod 列表(如有)以及适用于所有 LinuxServer 镜像的通用 Mod,均可通过页面上方的动态徽章访问。

支持信息

  • 容器运行时进入 Shell 交互:
docker exec -it bookstack /bin/bash
  • 实时查看容器日志:
docker logs -f bookstack
  • 查看容器版本号:
docker inspect -f '{{ index .Config.Labels "build_version" }}' bookstack
  • 查看镜像版本号:
docker inspect -f '{{ index .Config.Labels "build_version" }}' lscr.io/linuxserver/bookstack:latest

更新说明

我们发布的大部分镜像均为静态版本化镜像,需要更新镜像并重新创建容器才能升级内部应用。除非对应 README.md 中另有说明,否则我们不推荐也不支持直接在容器内部升级应用。请查阅上文的应用配置章节,确认该镜像推荐的升级方式。

以下为容器升级操作指南:

通过 Docker Compose 升级

  • 更新镜像:
  • 更新所有镜像:
docker-compose pull
  • 更新指定镜像:
docker-compose pull bookstack
  • 更新容器:
  • 更新所有容器:
docker-compose up -d
  • 更新指定容器:
docker-compose up -d bookstack
  • 你还可以执行以下命令清理无用的悬空旧镜像:
docker image prune

通过 Docker Run 升级

  • 更新镜像:
docker pull lscr.io/linuxserver/bookstack:latest
  • 停止运行中的容器:
docker stop bookstack
  • 删除该容器:
docker rm bookstack
  • 按照上文给出的 docker run 参数重新创建容器(只要正确映射到宿主机文件夹,你的 /config 目录及所有配置都会被保留)
  • 你还可以执行以下命令清理无用的悬空旧镜像:
docker image prune

镜像更新通知 - Diun(Docker Image Update Notifier)

[!TIP] 我们推荐使用 https://crazymax.dev/diun/ 获取镜像更新通知。不推荐也不支持使用其他可无人值守自动升级容器的工具。

本地构建镜像

如果你出于开发目的或需要自定义逻辑,想要在本地修改并构建镜像:

git clone https://github.com/linuxserver/docker-bookstack.git
cd docker-bookstack
docker build \
--no-cache \
--pull \
-t lscr.io/linuxserver/bookstack:latest .

你可以借助 lscr.io/linuxserver/qemu-static 在 x86_64 硬件上构建 ARM 架构镜像,反之亦然:

docker run --rm --privileged lscr.io/linuxserver/qemu-static --reset

完成注册后,你可以使用 -f Dockerfile.aarch64 参数指定要使用的 Dockerfile 文件,完成对应架构镜像的构建。

版本更新记录

镜像信息

镜像名称:ghcr.io/linuxserver/bookstack 参考标签:latest

更新日志

  • 05.08.26: - 以 PUID/PGID 管理的 abc 用户身份运行异步队列工作进程。
  • 05.07.26: - 基于 Alpine 3.24 重建镜像。
  • 29.04.26: - 切换为从 https://codeberg.org/bookstack/bookstack 拉取发布版本。
  • 28.12.25: - 基于 Alpine 3.23 重建镜像。
  • 05.07.25: - 基于 Alpine 3.22 重建镜像。
  • 04.01.25: - 新增 php-opcache。
  • 17.12.24: - 基于 Alpine 3.21 重建镜像。
  • 11.10.24: - 默认优先使用环境变量配置,优先级高于 .env 文件配置。
  • 06.09.24: - 新增 php-exif 以支持读取图片 EXIF 数据。
  • 27.05.24: - 基于 Alpine 3.20 重建镜像。现有用户需更新自身 nginx 配置,避免出现 http2 弃用警告。
  • 25.01.24: - 现有用户需更新 site-confs/default.conf - 清理默认站点配置。
  • 23.12.23: - 基于 Alpine 3.19 与 php 8.3 重建镜像。
  • 31.10.23: - 进一步优化 sed 替换逻辑的安全性。
  • 07.06.23: - 新增 mariadb-client,以支持 bookstack-system-cli 功能。
  • 25.05.23: - 基于 Alpine 3.18 重建镜像,弃用 armhf 架构支持。
  • 13.04.23: - 将 ssl.conf 引入配置移至 default.conf 中。
  • 01.03.23: - 新增 php iconv 扩展。
  • 19.01.23: - 基于 alpine 3.17 与 php 8.1 重建镜像。
  • 16.01.23: - 为 .env 中的所有值添加引号包裹。
  • 05.01.23: - 修复数据库密码设置问题(sed 转义 & 字符)。
  • 21.12.22: - 当环境变量更新时,同步更新 .env 文件中的数据库信息。
  • 10.10.22: - 移除密码转义逻辑,该逻辑会导致小部分用户出现使用问题。
  • 20.08.22: - 基于 alpine 3.15 与 php 8 重建镜像。重构 nginx 配置(https://info.linuxserver.io/issues/2022-08-20-nginx-base)。
  • 14.03.22: - 添加用于主题支持的符号链接。
  • 11.07.21: - 基于 Alpine 3.14 重建镜像。
  • 12.01.21: - 自 0.31.0 版本起,移除了不再需要的依赖项。
  • 17.12.20: - 将 APP_URL 变量设为必填项(上游项目变更要求)。
  • 17.09.20: - 基于 alpine 3.12 重建镜像。修复 APP_URL 设置逻辑。默认将 PHP 帖子最大大小与上传最大文件大小提升至 100MB。
  • 19.12.19: - 基于 alpine 3.11 重建镜像。
  • 26.07.19: - 在上游项目修复相关问题前,临时使用旧版本 tidyhtml。
  • 28.06.19: - 基于 alpine 3.10 重建镜像。
  • 14.06.19: - 在镜像中添加 wkhtmltopdf,用于 PDF 渲染功能。
  • 20.04.19: - 基于 Alpine 3.9 重建镜像,新增 MySQL 初始化逻辑。
  • 22.03.19: - 切换使用新的基础镜像,调整为 arm32v7 标签。
  • 20.01.19: - 新增 php7-curl。
  • 04.11.18: - 新增 php7-ldap。
  • 15.10.18: - 调整面向高级用户的功能逻辑。
  • 08.10.18: - 新增高级模式,调整符号链接规则,修复 sed 逻辑,更新文档,新增部分 composer 文件。
  • 23.09.18: - 预发布版本更新。
  • 02.07.18: - 首次正式发布。

用户好评

来自真实用户的反馈,见证轩辕镜像的优质服务

用户头像

oldzhang

运维工程师

Linux服务器

5

"Docker访问体验非常流畅,大镜像也能快速完成下载。"

官方技术交流群:问题咨询请:提交工单
专业版 · 高速稳定拉取镜像
50GB 仅 ¥8/年
高速镜像下载在线技术支持99.95% SLA 保障付费会员免广告