如何为docker run命令指定--device选项?

Ola*_*avT 1 docker azure-iot-hub azure-iot-edge

我正在测试新的Azure IoT Edge V2。我需要使用--device选项运行部署到边缘设备的Docker映像,如下所示(访问串行端口):

$ docker run --device=/dev/serial/by-id/usb-ELT_SENSOR_EK100_V1.0_SN000001-if00-port0 olavt.azurecr.io/testco2sensor-arm32
Run Code Online (Sandbox Code Playgroud)

--device从Azure门户创建新部署时如何指定选项?

Dar*_*rys 7

从理论上讲,您可以指定docker api容器中记录的任何内容,并在此处声明https://docs.docker.com/engine/api/v1.30/#operation/ContainerCreate

在设备情况下,您可以(我从未尝试过这种方式)在中指定createOptions

{
  "HostConfig": {
    "Devices": [
      {
        "PathOnHost": "/dev/serial/by-id/usb-ELT_SENSOR_EK100_V1.0_SN000001-if00-port0",
        "PathInContainer": "/dev/serial/by-id/usb-ELT_SENSOR_EK100_V1.0_SN000001-if00-port0",
        "CgroupPermissions": "rwm"
      }
    ]
  }
}
Run Code Online (Sandbox Code Playgroud)

可以肯定的是,它可以使容器私有化,从而完全打开硬件方面的所有内容。为此,您只需使用Priviledged参数

{
  "HostConfig": {
    "Priviledged": true
  }
}
Run Code Online (Sandbox Code Playgroud)