docker中运行的Drone Kit python连接到主机上的MAVProxy

docker中运行的Drone Kit python连接到主机上的MAVProxy,python,docker,dronekit-python,dronekit,Python,Docker,Dronekit Python,Dronekit,我正在docker容器中使用dronekit python,并尝试使用以下命令连接到主机(Mac OSX)上运行的MAVProxy实例: vehicle = connect('udp:host.docker.internal:14551', wait_ready=True) 但是我得到了以下错误: File "/usr/local/lib/python3.7/site-packages/pymavlink/mavutil.py", line 1015, in __init__ self.por

我正在docker容器中使用dronekit python,并尝试使用以下命令连接到主机(Mac OSX)上运行的MAVProxy实例:

vehicle = connect('udp:host.docker.internal:14551', wait_ready=True)
但是我得到了以下错误:

File "/usr/local/lib/python3.7/site-packages/pymavlink/mavutil.py", line 1015, in __init__
self.port.bind((a[0], int(a[1])))

OSError: [Errno 99] Cannot assign requested address
有人知道这里有什么问题吗?当我在主机上本地运行python脚本时,我能够使用上面的命令成功地连接,但当我在docker容器中运行python脚本时,就不能了

我发现了一个类似的问题,但被接受的答案对我来说并不适用。不确定我是否需要暴露端口或类似的东西

以下是我在主机上运行的启动MAVProxy的命令:
mavproxy.py--master=127.0.0.1:14550--out-udp:127.0.0.1:14551--out-udp:10.55.222.120:14550--out-udp:127.0.0.1:14552

我最终使主机上的mavproxy和docker flask容器中的无人机工具包python正确连接

Seemus790在这篇文章中的回答成功了

工作解决方案: 主机上的MAVProxy(在我的例子中是Mac OS)

docker容器中的dronekit python命令:

vehicle = connect('tcp:host.docker.internal:14552', wait_ready=True)

诀窍在于mavproxy命令的--out=tcpin:0.0.0:14552部分,该部分已被记录在案

我在发表本文时,哪个版本的OS X?@Greenonline对该版本没有正面评价,但我的同一台机器目前在v10.15.7 Catalina上。这很可能是一年前非常相似的版本。
vehicle = connect('tcp:host.docker.internal:14552', wait_ready=True)