Bookstack 是一款免费开源的Wiki系统,旨在创建美观的文档。它提供简洁而强大的WYSIWYG编辑器,使团队能够轻松创建详细实用的文档。该镜像由LinuxServer.io团队维护,具备定期更新、用户权限映射、自定义基础镜像等特性,确保应用稳定运行与便捷管理。
该镜像利用Docker manifest实现多平台支持,拉取lscr.io/linuxserver/bookstack:latest将自动获取适合您架构的镜像,也可通过标签指定特定架构:
| 架构 | 支持情况 | 标签 |
|---|---|---|
| x86-64 | ✅ | amd64-<version tag> |
| arm64 | ✅ | arm64v8-<version tag> |
| armhf | ❌ |
默认用户名为***,密码为password,通过[***]访问容器。
应用依赖MySQL数据库(可使用现有数据库或新建),推荐搭配LinuxServer的MariaDB容器:linuxserver/mariadb。
若在子文件夹反向代理(如SWAG或Traefik)后使用,需设置APP_URL环境变量为外部域名,否则可能无法正常工作。
容器将BookStack的关键文件/目录持久化到/config卷中,以下为容器路径与标准BookStack安装路径的映射关系:
| 容器路径 | BookStack相对路径 |
|---|---|
/config/www/.env | .env |
/config/www/laravel.log | storage/logs/laravel.log |
/config/www/backups/ | storage/backups/ |
/config/www/files/ | storage/uploads/files/ |
/config/www/images/ | storage/uploads/images/ |
/config/www/themes/ | themes/ |
/config/www/uploads/ | public/uploads/ |
如需使用邮件、Memcache、LDAP等高级功能,需参考BookStack文档创建自定义.env文件。创建容器时不要设置任何SQL相关环境变量,容器会自动复制示例.env文件到/config/www/.env,供用户编辑。
yaml--- version: "2" services: bookstack: image: lscr.io/linuxserver/bookstack container_name: bookstack environment: - PUID=1000 - PGID=1000 - APP_URL=[***] - DB_HOST=bookstack_db - DB_PORT=3306 - DB_USER=bookstack - DB_PASS=<yourdbpass> - DB_DATABASE=bookstackapp volumes: - ./bookstack_app_data:/config ports: - 6875:80 restart: unless-stopped depends_on: - bookstack_db bookstack_db: image: lscr.io/linuxserver/mariadb container_name: bookstack_db environment: - PUID=1000 - PGID=1000 - MYSQL_ROOT_PASSWORD=<yourdbpass> - TZ=Europe/London - MYSQL_DATABASE=bookstackapp - MYSQL_USER=bookstack - MYSQL_PASSWORD=<yourdbpass> volumes: - ./bookstack_db_data:/config restart: unless-stopped
bashdocker run -d \ --name=bookstack \ -e PUID=1000 \ -e PGID=1000 \ -e TZ=Etc/UTC \ -e APP_URL=yourbaseurl \ -e DB_HOST=yourdbhost \ -e DB_PORT=yourdbport \ -e DB_USER=yourdbuser \ -e DB_PASS=yourdbpass \ -e DB_DATABASE=bookstackapp \ -e QUEUE_CONNECTION= `#可选` \ -p 6875:80 \ -v /path/to/data:/config \ --restart unless-stopped \ lscr.io/linuxserver/bookstack:latest
容器运行时通过参数配置,格式为<外部>:<内部>:
| 参数 | 功能 |
|---|---|
-p 80 | 将容器内80端口映射到主机的6875端口 |
-e PUID=1000 | 用户ID,详见下文用户/组标识符说明 |
-e PGID=1000 | 组ID,详见下文用户/组标识符说明 |
-e TZ=Etc/UTC | 指定时区,列表参考时区数据库 |
-e APP_URL=yourbaseurl | 应用访问地址(如[***]或[***]) |
-e DB_HOST=yourdbhost | 数据库主机地址 |
-e DB_PORT=yourdbport | 数据库端口(默认3306) |
-e DB_USER=yourdbuser | 数据库用户名 |
-e DB_PASS=yourdbpass | 数据库密码(至少4字符,非字母数字密码需正确转义) |
-e DB_DATABASE=bookstackapp | 使用的数据库名称 |
-e QUEUE_CONNECTION= | 设置为database启用异步操作(如发送邮件、触发webhook),详见文档 |
-v /config | 存储上传数据的持久化目录 |
通过FILE__前缀从文件加载环境变量,例如:
bash-e FILE__MYVAR=/run/secrets/mysecretvariable
将从/run/secrets/mysecretvariable文件内容设置MYVAR环境变量。
可通过-e UMASK=022覆盖默认umask设置,控制容器内服务的文件权限,详情参考umask说明。
使用卷时,通过PUID(用户ID)和PGID(组ID)避免权限问题。确保主机卷目录所有者与指定ID一致。通过id your_user命令获取当前用户的ID:
bashid your_user
示例输出:
textuid=1000(your_user) gid=1000(your_user) groups=1000(your_user)
可通过Docker Mods扩展功能,查看可用Mods:bookstack Mods 或 通用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
docker-compose pulldocker-compose pull bookstackdocker-compose up -ddocker-compose up -d bookstackdocker image prunedocker pull lscr.io/linuxserver/bookstack:latestdocker stop bookstackdocker rm bookstack/config卷映射正确则配置保留)docker image prunebashdocker run --rm \ -v /var/run/docker.sock:/var/run/docker.sock \ containrrr/watchtower \ --run-once bookstack
清理旧镜像:docker image prune
警告:不推荐使用Watchtower自动更新容器,建议使用Docker Compose管理。
bashgit clone [***] cd docker-bookstack docker build \ --no-cache \ --pull \ -t lscr.io/linuxserver/bookstack:latest .
ARM架构构建(需在x86_64硬件上使用multiarch/qemu-user-static):
bashdocker run --rm --privileged multiarch/qemu-user-static:register --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