https://github.com/BookStackApp/BookStack 是一款免费开源的Wiki系统,旨在创建美观的文档。它提供简洁而强大的WYSIWYG编辑器,使团队能够轻松创建详细实用的文档。该镜像由LinuxServer.io团队维护,具备定期更新、用户权限映射、自定义基础镜像等特性,确保应用稳定运行与便捷管理。
该镜像利用Docker manifest实现多平台支持,拉取lscr.io/linuxserver/bookstack:latest将自动获取适合您架构的镜像,也可通过标签指定特定架构:
| 架构 | 支持情况 | 标签 |
|---|---|---|
| x86-64 | ✅ | amd64-<version tag> |
| arm64 | ✅ | arm64v8-<version tag> |
| armhf | ❌ |
默认用户名为admin@admin.com,密码为password,通过http://dockerhost:6875访问容器。
应用依赖MySQL数据库(可使用现有数据库或新建),推荐搭配LinuxServer的MariaDB容器:https://hub.docker.com/r/linuxserver/mariadb/%E3%80%82
若在子文件夹反向代理(如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=https://bookstack.example.com - 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 | 应用访问地址(如http://192.168.1.1:6875或https://bookstack.mydomain.com) |
-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 https://github.com/linuxserver/docker-bookstack.git 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 登录认证访问私有仓库
无需登录使用专属域名
Kubernetes 集群配置 Containerd
K3s 轻量级 Kubernetes 镜像加速
VS Code Dev Containers 配置
Podman 容器引擎配置
HPC 科学计算容器配置
ghcr、Quay、nvcr 等镜像仓库
Harbor Proxy Repository 对接专属域名
Portainer Registries 加速拉取
Nexus3 Docker Proxy 内网缓存
需要其他帮助?请查看我们的 常见问题Docker 镜像访问常见问题解答 或 提交工单
docker search 限制
站内搜不到镜像
离线 save/load
插件要用 plugin install
WSL 拉取慢
安全与 digest
新手拉取配置
镜像合规机制
manifest unknown
no matching manifest(架构)
invalid tar header(解压)
TLS 证书失败
DNS 超时
域名连通性排查
410 Gone 排查
402 与流量用尽
401 认证失败
429 限流
D-Bus 凭证提示
413 与超大单层
来自真实用户的反馈,见证轩辕镜像的优质服务