Мы нашли проблему. Устройство, на котором истекло время ожидания запроса, имело две сети: Ethe rnet и GSM-модем. Docker был подключен к сети Ethe rnet, в которой не было подключения inte rnet. Это должен был быть модем GSM. Мы решили эту проблему, запустив сеть azure -iot-edge в качестве «хостовой» сети . Таким образом, он использует ту же конфигурацию, что и главный компьютер.
"createOptions": {
"NetworkingConfig": {
"EndpointsConfig": {
"host": {}
}
},
"HostConfig": {
"NetworkMode": "host"
}
}
Работа в качестве хост-сети решила проблему на большинстве машин. На некоторых других машинах мы получили другое исключение, а именно:
System.Net.Internals.SocketExceptionFactory+ExtendedSocketException (00000005, 0xFFFDFFFF): Name or service not known
Это было связано с несоответствием между /etc/hosts
и /etc/hostname
, см. Эту проблему , чтобы исправить это.