本站支持搜索的镜像仓库:Docker Hub、gcr.io、ghcr.io、quay.io、k8s.gcr.io、registry.gcr.io、elastic.co、mcr.microsoft.com
Apache Bookkeeper是Apache软件基金会的开源项目,提供复制日志服务,用于构建复制状态机。日志包含一系列事件,可应用于状态机,Bookkeeper保证每个副本状态机按相同顺序接收所有事件。本Docker镜像提供便捷的Bookkeeper运行环境,支持独立模式和集群模式部署,依赖Zookeeper进行状态存储和Bookie(Bookkeeper服务器)节点发现,适用于本地开发、测试及集群功能演示。
可在单个容器中运行独立BookKeeper集群,模拟本地部署:
docker run -it \ --entrypoint "/bin/bash" \ apache/bookkeeper \ -c "/opt/bookkeeper/bin/bookkeeper localbookie 3"
也可先启动容器,再在容器内执行
bin/bookkeeper localbookie 3
测试集群:需先进入容器,执行BookKeeper shell命令:
# 进入容器 docker exec -it <容器ID或名称> bash # 测试命令示例 ./bin/bookkeeper shell listbookies -rw ./bin/bookkeeper shell simpletest
通过docker-compose快速部署完整集群:
git clone [***] cd bookkeeper/docker docker-compose up -d
默认启动3个Bookie节点和1个dice应用,日志示例:
bookie1_1 | 2017-12-08 23:18:11,315 - INFO - [bookie-io-1:BookieRequestHandler@51] - Channel connected [id: 0x405d690e, L:/172.19.0.3:3181 - R:/172.19.0.6:34922] bookie2_1 | 2017-12-08 23:18:11,326 - INFO - [bookie-io-1:BookieRequestHandler@51] - Channel connected [id: 0x7fa8645d, L:/172.19.0.4:3181 - R:/172.19.0.6:38862] dice_1 | Value = 1, epoch = 5, leading
扩展dice应用数量:
docker-compose up -d --scale dice=3
扩展Bookie节点数量:
docker-compose up -d --scale bookie1=3
关闭集群(清理容器避免残留数据影响下次启动):
docker-compose down
通过Makefile部署集群:
git clone [***] cd bookkeeper/docker make run-demo
无X环境(如默认MacOS)需在6个终端分别执行:
make run-zk make run-bk BOOKIE=1 make run-bk BOOKIE=2 make run-bk BOOKIE=3 make run-dice make run-dice
重启集群前需清理数据:
sudo rm -rf /tmp/test_bk,避免Zookeeper连接失败
创建专用网络确保容器间名称解析一致性:
docker network create "bk_network"
使用官方Zookeeper镜像在创建的网络中启动Zookeeper:
docker run -d \ --network "bk_network" \ --name "test_zookeeper" \ --hostname "test_zookeeper" \ zookeeper
首次部署集群需初始化元数据(当前BookKeeper镜像启动首个Bookie时会自动执行此步骤):
docker run -it --rm \ --network "bk_network" \ --env BK_zkServers=test_zookeeper:2181 \ apache/bookkeeper \ /opt/bookkeeper/bin/bookkeeper shell metaformat
启动3个Bookie节点组成集群:
# 启动bookie1 docker run -it\ --network "bk_network" \ --env BK_zkServers=test_zookeeper:2181 \ --name "bookie1" \ --hostname "bookie1" \ apache/bookkeeper # 同理启动bookie2和bookie3,只需修改--name和--hostname
使用dice应用测试集群(验证 leader 选举和日志写入):
docker run -it --rm \ --network "bk_network" \ --env ZOOKEEPER_SERVERS=test_zookeeper:2181 \ caiok/bookkeeper-tutorial
Bookkeeper支持两种配置方式,优先级从高到低为:
BK_<原配置键>,如BK_zkServers对应配置文件中的zkServers/opt/bookkeeper/conf目录配置示例(混合使用两种方式):
docker run --name bookie1 -d \ -v $(local_configure_dir):/opt/bookkeeper/conf/ \ # 挂载配置文件 -e BK_bookiePort=3181 \ # 环境变量设置端口 -e BK_zkServers=zk-server1:2181,zk-server2:2181 \ # 环境变量设置Zookeeper地址 -e BK_journalPreAllocSizeMB=32 \ # 环境变量设置日志预分配大小 apache/bookkeeper
环境变量值会覆盖挂载配置文件中的对应值。例如:
bk_server.conf中设置zkServers=zk-server3:2181-e BK_zkServers=zk-server1:2181,zk-server2:2181设置环境变量zk-server1:2181,zk-server2:2181| 环境变量 | 说明 | 默认值 |
|---|---|---|
BK_bookiePort | Bookie监听端口 | 3181 |
BK_zkServers | Zookeeper集群地址列表,格式host:port,host:port | 127.0.0.1:2181 |
BK_zkLedgersRootPath | Zookeeper中账本元数据根路径 | /bookkeeper/ledgers |
BK_CLUSTER_ROOT_PATH | Zookeeper集群根路径 | 空(账本路径为/ledgers) |
BK_DATA_DIR | 数据存储根目录,包含journal、ledgers、index子目录 | /data/bookkeeper |
容器内配置文件位于/opt/bookkeeper/conf,源自Bookkeeper源码仓库的conf目录,主要文件包括:
bk_server.conf:核心服务配置bkenv.sh:环境变量配置log4j2.xml:服务日志配置log4j2.shell.xml:shell命令日志配置建议修改前先熟悉各文件功能及默认配置。
# 清理cookie并格式化 /opt/bookkeeper/bin/bookkeeper shell bookieformat -nonInteractive -force -deleteCookie # 启动自动恢复 /opt/bookkeeper/bin/bookkeeper autorecovery
镜像中软件的许可信息参见Apache Bookkeeper LICENSE。
免费版仅支持 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 登录方式配置轩辕镜像加速服务,包含7个详细步骤
在 Linux 系统上配置轩辕镜像源,支持主流发行版
在 Docker Desktop 中配置轩辕镜像加速,适用于桌面系统
在 Docker Compose 中使用轩辕镜像加速,支持容器编排
在 k8s 中配置 containerd 使用轩辕镜像加速
在宝塔面板中配置轩辕镜像加速,提升服务器管理效率
在 Synology 群晖NAS系统中配置轩辕镜像加速
在飞牛fnOS系统中配置轩辕镜像加速
在极空间NAS中配置轩辕镜像加速
在爱快ikuai系统中配置轩辕镜像加速
在绿联NAS系统中配置轩辕镜像加速
在威联通NAS系统中配置轩辕镜像加速
在 Podman 中配置轩辕镜像加速,支持多系统
配置轩辕镜像加速9大主流镜像仓库,包含详细配置步骤
无需登录即可使用轩辕镜像加速服务,更加便捷高效
需要其他帮助?请查看我们的 常见问题 或 官方QQ群: 13763429