Hyperledger Fabric: наберите unix /host/var/run/docker.sock: connect: нет такого файла или каталога - PullRequest
0 голосов
/ 15 марта 2019

мы получаем эту ошибку при попытке создать цепной код:

2019-03-14 23:17:01.917 UTC [dockercontroller] Start -> ERRO 152d start-could not recreate container <dev-peer1-kp-mycc-1.0>, because of 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

мы видим файл /var/run/docker.sock на хосте:

$ ls /var/run/docker.sock
/var/run/docker.sock

как мы можем это исправить?

РЕДАКТИРОВАТЬ: мы используем почти тот же конфиг, что и [ 1 ], за исключением того, что мы не монтируем /var/run в контейнер. Это кажется большой дырой в системе безопасности, согласно [ 2 ]

Ответы [ 2 ]

0 голосов
/ 21 марта 2019

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" >
0 голосов
/ 15 марта 2019

Поскольку вам не нужно зависеть от установки /var/run/docker.sock в вашем контейнере.Другой вариант - включить демон docker через tcp-соединение , а затем изменить значение CORE_VM_ENDPOINT, чтобы оно стало CORE_VM_ENDPOINT=http://172.17.0.1:2375

. Проверьте, какой IP-адрес вы хотите предоставить.API к нему.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...