Macos 如何从Mac OS上的Docker容器访问USB端口

Macos 如何从Mac OS上的Docker容器访问USB端口,macos,docker,flutter,Macos,Docker,Flutter,我已经创建了一个Docker容器,用于构建和测试我的flatter应用程序。我想将我的移动设备连接到Macbook的USB端口,并从Docker容器直接在设备上运行Flatter应用程序。但是,我无法从容器访问USB端口并收到此错误 我正在VS代码中使用远程开发扩展来运行容器 devcontainer.json文件附在下面: { "name": "flutter_docker", "context": "..", "dockerFile": "../Dockerfile

我已经创建了一个Docker容器,用于构建和测试我的flatter应用程序。我想将我的移动设备连接到Macbook的USB端口,并从Docker容器直接在设备上运行Flatter应用程序。但是,我无法从容器访问USB端口并收到此错误

我正在VS代码中使用远程开发扩展来运行容器

devcontainer.json
文件附在下面:

{
    "name": "flutter_docker",
    "context": "..",
    "dockerFile": "../Dockerfile",
    "remoteUser": "developer",
    "mounts": [
        "source=/dev/bus/usb,target=/dev/bus/usb,type=bind"
    ],
    "settings": {
        "terminal.integrated.shell.linux": null
    },
    "runArgs": ["--privileged"],
    "extensions": ["dart-code.flutter"],
    "workspaceMount": "source=${localWorkspaceFolder}/workspace,target=/home/developer/workspace,type=bind,consistency=delegated",
    "workspaceFolder": "/home/developer/workspace"
}
每当我从json文件中删除
mounts
时,它运行良好,没有任何错误

删除此行:

"mounts": [
    "source=/dev/bus/usb,target=/dev/bus/usb,type=bind"
],
Dockerfile:

FROM ubuntu:18.04

# Prerequisites
RUN apt update && apt install -y curl git unzip xz-utils zip libglu1-mesa openjdk-8-jdk wget

# Setup new user
RUN useradd -ms /bin/bash developer
USER developer
WORKDIR /home/developer

# Prepare Android directories and system variables
RUN mkdir -p Android/Sdk
ENV ANDROID_SDK_ROOT /home/developer/Android/Sdk
RUN mkdir -p .android && touch .android/repositories.cfg

# Setup Android SDK
RUN wget -O sdk-tools.zip https://dl.google.com/android/repository/sdk-tools-linux-4333796.zip
RUN unzip sdk-tools.zip && rm sdk-tools.zip
RUN mv tools Android/Sdk/tools
RUN cd Android/Sdk/tools/bin && yes | ./sdkmanager --licenses
RUN cd Android/Sdk/tools/bin && ./sdkmanager "build-tools;29.0.2" "patcher;v4" "platform-tools" "platforms;android-29" "sources;android-29"

# Download Flutter SDK
RUN git clone https://github.com/flutter/flutter.git
ENV PATH "$PATH:/home/developer/flutter/bin"

# Run basic check to download Dark SDK
RUN flutter doctor

试试这个答案:据我所知,这还不可能(2020年9月),因为Mac的较新Docker版本运行在HyperKit虚拟机上,而HyperKit虚拟机没有此功能。见和。它应该和你一起工作。不过,您可以自己运行VirtualBox。@gr4nt3d您说得对,对于mac用户来说,只有VirtualBox的方式