LinuxServer.io 团队专注于提供高质量容器,主要特点包括:
BookStack 是一款免费开源的 Wiki 工具,专为创建美观文档设计。它提供直观的 WYSIWYG 编辑器,同时支持 Markdown,帮助团队轻松构建详细实用的文档。BookStack 基于 SQL 数据库,致力于让文档编写从负担变为享受。
容器通过 Docker 清单实现多平台支持,拉取 lscr.io/linuxserver/bookstack:latest 即可自动匹配对应架构。也可通过标签指定架构:
| 架构 | 支持状态 | 标签格式 |
|---|---|---|
| x86-64 | ✅ | amd64-<version tag> |
| arm64 | ✅ | arm64v8-<version tag> |
默认用户名:[***已删除],密码:password。访问地址:http://<主机IP>:6875。
需搭配 MariaDB 数据库(可使用 LinuxServer MariaDB 容器)。
若通过子路径反向代理(如 SWAG 或 Traefik),必须设置 APP_URL 环境变量为外部域名,否则无法正常使用。
容器将 BookStack 关键文件/目录持久化到 /config 目录,方便数据持久化。以下为容器内路径与 BookStack 原生路径的映射关系:
| 容器内路径 | 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,需在主机终端运行以下命令更新数据库条目:
shelldocker exec -it bookstack php /app/www/artisan bookstack:update-url ${旧URL} ${新URL}
如需配置邮件、LDAP 等高级功能,可通过环境变量或自定义 .env 文件实现。容器会自动在 /config/www/.env 生成示例配置文件,可参考 BookStack ***文档 修改。
本镜像支持只读容器文件系统,需注意:
/tmp 挂载为 tmpfs除非参数标记为“可选”,否则为必填项,必须提供值。
yaml--- services: bookstack: image: lscr.io/linuxserver/bookstack:latest container_name: bookstack environment: - PUID=1000 # 用户ID,详见下方说明 - PGID=1000 # 组ID,详见下方说明 - TZ=Etc/UTC # 时区,参考时区列表 - APP_URL= # 应用访问地址(如 [***] - APP_KEY= # 会话加密密钥,需通过命令生成(详见参数说明) - DB_HOST= # 数据库主机名 - DB_PORT=3306 # 数据库端口 - DB_USERNAME= # 数据库用户名 - DB_PASSWORD= # 数据库密码(至少4位,特殊字符需转义) - DB_DATABASE= # 数据库名 - QUEUE_CONNECTION= # 可选,设为 database 启用异步操作(如邮件发送) volumes: - /path/to/bookstack/config:/config # 持久化配置目录 ports: - 6875:80 # Web访问端口 restart: unless-stopped
bashdocker 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= `#可选` \ -p 6875:80 \ -v /path/to/bookstack/config:/config \ --restart unless-stopped \ lscr.io/linuxserver/bookstack:latest
| 参数 | 功能说明 |
|---|---|
-p 6875:80 | Web访问端口映射 |
-e PUID=1000 | 用户ID,避免权限问题,通过 id your_user 命令获取 |
-e PGID=1000 | 组ID,同上 |
-e TZ=Etc/UTC | 时区,参考 时区列表 |
-e APP_URL= | 应用外部访问地址(含协议、IP/域名、端口) |
-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 启用异步操作(参考 ***文档) |
-v /config | 持久化配置目录 |
--read-only=true | 启用只读文件系统(需配合 tmpfs 挂载) |
可通过 FILE__ 前缀从文件加载环境变量,例如:
bash-e FILE__MYVAR=/run/secrets/mysecretvariable
此命令会将 /run/secrets/mysecretvariable 文件内容作为 MYVAR 的值。
可通过 -e UMASK=022 覆盖默认 umask(文件权限掩码)。注意 umask 是权限减法,而非直接设置权限,详情参考 umask 说明。
使用卷挂载时,主机与容器可能出现权限冲突。通过 PUID 和 PGID 指定用户/组 ID,确保主机卷目录所有者与容器内一致即可解决。获取当前用户 ID:
bashid your_user
输出示例:uid=1000(your_user) gid=1000(your_user)
可通过 Docker Mods 扩展容器功能,支持 BookStack 的 Mods 及通用 Mods 列表见 LinuxServer Mods 页面。
bashdocker exec -it bookstack /bin/bash
bashdocker logs -f bookstack
bashdocker inspect -f '{{ index .Config.Labels "build_version" }}' bookstack
bashdocker inspect -f '{{ index .Config.Labels "build_version" }}' lscr.io/linuxserver/bookstack:latest
bashdocker-compose pull # 全部镜像 # 或 docker-compose pull bookstack # 单个镜像
bashdocker-compose up -d # 全部容器 # 或 docker-compose up -d bookstack # 单个容器
bashdocker image prune
bashdocker pull lscr.io/linuxserver/bookstack:latest
bashdocker stop bookstack docker rm bookstack
bashdocker image prune
推荐使用 Diun 接收更新通知,不建议使用自动更新工具。
如需自定义镜像:
bashgit clone [***] cd docker-bookstack docker build \ --no-cache \ --pull \ -t lscr.io/linuxserver/bookstack:latest .
跨架构构建(如 x86_64 构建 ARM 镜像)需先运行:
bashdocker run --rm --privileged lscr.io/linuxserver/qemu-static --reset
然后指定架构 Dockerfile(如 -f Dockerfile.aarch64)。
来自真实用户的反馈,见证轩辕镜像的优质服务
免费版仅支持 Docker Hub 加速,不承诺可用性和速度;专业版支持更多镜像源,保证可用性和稳定速度,提供优先客服响应。
免费版仅支持 docker.io;专业版支持 docker.io、gcr.io、ghcr.io、registry.k8s.io、nvcr.io、quay.io、mcr.microsoft.com、docker.elastic.co 等。
当返回 402 Payment Required 错误时,表示流量已耗尽,需要充值流量包以恢复服务。
通常由 Docker 版本过低导致,需要升级到 20.x 或更高版本以支持 V2 协议。
先检查 Docker 版本,版本过低则升级;版本正常则验证镜像信息是否正确。
使用 docker tag 命令为镜像打上新标签,去掉域名前缀,使镜像名称更简洁。
探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 Docker 登录认证访问私有仓库
在 Linux 系统配置镜像加速服务
在 Docker Desktop 配置镜像加速
Docker Compose 项目配置加速
Kubernetes 集群配置 Containerd
在宝塔面板一键配置镜像加速
Synology 群晖 NAS 配置加速
飞牛 fnOS 系统配置镜像加速
极空间 NAS 系统配置加速服务
爱快 iKuai 路由系统配置加速
绿联 NAS 系统配置镜像加速
QNAP 威联通 NAS 配置加速
Podman 容器引擎配置加速
HPC 科学计算容器配置加速
ghcr、Quay、nvcr 等镜像仓库
无需登录使用专属域名加速
需要其他帮助?请查看我们的 常见问题 或 官方QQ群: 13763429