TL; DR: нам пришлось смонтировать /var/run
в док-контейнер, чтобы он работал.
Re: выставление демона docker поверх tcp, на самом деле это не имеет никакого значения w.r.t. уязвимость в системе безопасности, поскольку в обоих случаях (монтирование файла vs tcp) демон был подвержен контейнеру, в чем и заключается уязвимость.
Если мы попытаемся установить для CORE_VM_ENDPOINT значение http://172.17.0.1:2375, произойдет некоторая ошибка, связанная с тем, что соединение отклонено, поскольку порт не прослушивается.
Чтобы исправить это, нужно включить демон Docker (dockerd -H ...
). Мы пытались это сделать, но получили ошибку, сообщающую, что PID существует. Похоже, нужно перезапустить демона, а мы не хотели этого делать. Поэтому мы остановились на опции монтирования файла.
Мы думали, что отключим одноранговый узел после создания экземпляра цепного кода и, таким образом, позаботимся об уязвимости безопасности, но если мы сделаем это, то вызов цепного кода завершится неудачно, так как invoke снова полагается на связь с процессом-демоном.
2019-03-18 23:23:39.108 UTC [chaincodeCmd] chaincodeInvokeOrQuery -> DEBU 04d ESCC invoke result: response:<status:500 message:"failed to execute transaction 9c8928ffda960c89225682d0c4d0936342b60c687dd7ea0547378a88fd5f6749: [channel dscsa] could not launch chaincode mycc:1.0: error starting container: error starting container: Post http://unix.sock/containers/create?name=dev-peer1-kp-mycc-1.0: dial unix /host/var/run/docker.sock: connect: no such file or directory" >