Delta
中文
搜索
K
Links
Comment on page

常见问题解答

Docker容器无法启动

如果docker-compose updocker-compose up -d有容器无法启动, 输入命令docker-compose ps查看具体的容器状态,如果容器状态显示Exit (1),则表明发生了异常。 常见的情况是容器node1node2node3启动失败。
这里以node1发生异常为例,输入命令docker-compose logs -f node1,查看node1的日志。 发生的异常不同,处理方式也不同。

service.XXX.depends_on contains an invalid type

类似上图的问题,是由docker和docker-compose版本过低引起的。需要将docker版本升级至19.03.0+,docker-compose版本升级至1.29.2+。

node XXX has already joined

如果遇到node XXX has already joined这种异常,表明上一次关闭节点时,节点没有正常退出。
no-blockchain为例子。在容器connector运行正常的情况下,在no-blockchain文件夹下,依次输入命令:
$ docker run --rm -v ${PWD}/delta-node1:/app --network no-blockchain_default deltampc/delta-node:0.5.3 leave
$ docker run --rm -v ${PWD}/delta-node2:/app --network no-blockchain_default deltampc/delta-node:0.5.3 leave
然后输入命令:
$ docker-compose restart
即可重新启动。
with-blockchain文件夹下,命令是类似的。需要将命令中的no-blockchain_default改为with-blockchain_default

PermissionError: [Errno 13] Permission denied: 'XXX'

如果遇到PermissionError: [Errno 13] Permission denied: 'XXX'这种异常,表明发生了权限问题,docker容器无法挂载volume。 这种问题一般是由于用户是root用户导致的。在非root用户的情况下,一般不会出现如下问题。
如果不能切换到非root用户,可以修改docker-compose.yml文件,在所有容器的配置中添加privileged: true。 例如:
node1-init:
image: deltampc/delta-node:0.5.3
container_name: node1-init
volumes:
- "./delta-node1:/app"
command: "init"
privileged: true # 新增此行
之后即可正常启动。