在 IoT Edge v1.1 上使用 Windows 容器从 ACR 中提取 edgeAgent 时出错
Error pulling edgeAgent from ACR with Windows container on IoT Edge v1.1
我正在与一位使用带有 Windows 容器的 IoT Edge v1.1 的客户合作。他们处于锁定环境中,不想连接到 public 容器注册表。他们更喜欢从自己的 Azure 容器注册表 (ACR) 中摄取。我们已将 edgeAgent 和 edgeHub 从我们的 public 注册表复制到 ACR,使用 az acr import
从以下位置提取容器:
- mcr.microsoft.com/azureiotedge-agent:1.1
- mcr.microsoft.com/azureiotedge-hub:1.1
我发现 Azure IoT Edge 无法下载 edgeAgent 图像。如果我从 ACR 手动下载 edgeAgent 容器,edgeAgent 将正确启动。 edgeAgent 还可以通过 ACR 下载和安装 edgeHub。例如:
docker -H "npipe:////./pipe/iotedge_moby_engine" pull <private ACR>.azurecr.io/azureiotedge-agent:1.1
关于 IoT Edge 为何无法拉取映像本身的任何想法?我的 edgeAgent config.yaml 配置有问题吗?
agent:
name: "edgeAgent"
type: "docker"
env: {}
config:
image: "<private ACR>.azurecr.io/azureiotedge-agent:1.1"
auth:
username: "<username>"
password: "<key>"
serveraddress: "<address>.azurecr.io"
可能需要 allow-nondistributable-artifacts
。请看
-
-
请注意,docker 守护程序需要此设置 将 public 图像推送到私有注册表,而不是 IoT Edge 设备本身。
如果这没有帮助,我建议在 https://github.com/azure/iotedge/issues 打开一个问题,并确保包含来自 iotedged 服务的日志。
我正在与一位使用带有 Windows 容器的 IoT Edge v1.1 的客户合作。他们处于锁定环境中,不想连接到 public 容器注册表。他们更喜欢从自己的 Azure 容器注册表 (ACR) 中摄取。我们已将 edgeAgent 和 edgeHub 从我们的 public 注册表复制到 ACR,使用 az acr import
从以下位置提取容器:
- mcr.microsoft.com/azureiotedge-agent:1.1
- mcr.microsoft.com/azureiotedge-hub:1.1
我发现 Azure IoT Edge 无法下载 edgeAgent 图像。如果我从 ACR 手动下载 edgeAgent 容器,edgeAgent 将正确启动。 edgeAgent 还可以通过 ACR 下载和安装 edgeHub。例如:
docker -H "npipe:////./pipe/iotedge_moby_engine" pull <private ACR>.azurecr.io/azureiotedge-agent:1.1
关于 IoT Edge 为何无法拉取映像本身的任何想法?我的 edgeAgent config.yaml 配置有问题吗?
agent:
name: "edgeAgent"
type: "docker"
env: {}
config:
image: "<private ACR>.azurecr.io/azureiotedge-agent:1.1"
auth:
username: "<username>"
password: "<key>"
serveraddress: "<address>.azurecr.io"
allow-nondistributable-artifacts
。请看
请注意,docker 守护程序需要此设置 将 public 图像推送到私有注册表,而不是 IoT Edge 设备本身。
如果这没有帮助,我建议在 https://github.com/azure/iotedge/issues 打开一个问题,并确保包含来自 iotedged 服务的日志。