核心是用docker-compose.yml统一定义多节点服务、共享自定义网络、通过服务名自动发现,一条docker compose up -d命令即可启动可通信的多节点环境。

用 Docker Compose 部署区块链测试节点网络,核心是把多个节点定义为服务,统一网络、自动发现、按需扩展。不需要手动拉镜像、启容器、配连接,一条命令就能跑起可通信的多节点环境。
准备基础环境
确保本地已安装:
- Docker Engine(20.10+)和 Docker Compose v2(推荐使用
docker compose命令,非旧版docker-compose) - Git(用于克隆示例项目,如 Naivechain、Ink Node 或 Fabric 示例)
- 至少 4GB 内存(多节点并行运行时建议 8GB)
编写 docker-compose.yml 定义节点拓扑
这是最关键的一步。文件要明确三件事:节点角色、网络连接方式、数据/配置挂载点。
- 每个节点作为独立 service,例如
node1、bootnode、validator-01 - 通过
environment设置 P2P 连接地址,如PEERS=ws://node1:6001,让 node2 主动连 node1 - 所有节点共用一个自定义 bridge 网络(Docker Compose 默认创建),服务名即主机名,无需写 IP
- 若需持久化链数据,用
volumes挂载宿主机目录,避免容器重启后状态丢失
示例片段:
services:
node1:
build: .
ports: ["3001:3001"]
environment:
- PORT=3001
networks: [blockchain-net]
<p>node2:
build: .
ports: ["3002:3002"]
environment:</p><ul><li>PORT=3002</li><li>PEERS=ws://node1:6001
networks: [blockchain-net]</li></ul><p>networks:
blockchain-net:
driver: bridge
启动并验证节点协同工作
执行部署与检查只需几个命令:
-
docker compose up -d:后台启动全部节点,自动构建镜像(如有build:)、创建网络、启动容器 -
docker compose ps:确认所有服务状态为Up,端口映射正常 -
curl http://localhost:3001/blocks和curl http://localhost:3002/blocks:对比区块高度,一致说明同步成功 -
docker compose logs -f node1:实时查看主节点日志,观察新块广播、其他节点握手等信息
按需扩展或切换网络环境
测试不同场景时,不需重写整个配置:
- 加节点?在
docker-compose.yml中复制一份 service 块,改名、改端口、更新PEERS指向已有节点,再运行docker compose up -d --build - 换测试网?用
.env文件控制变量,比如NETWORK_NAME=ink-sepolia,配合env_file加载对应配置目录下的参数 - 调试失败?临时去掉
-d直接前台运行:docker compose up,错误即时可见
文章来自机圈观察员网,发布者:,转载请注明出处:https://www.jqgcy.com/jiquanzatan/126882.html