远程访问位于Docker容器内的ADB服务器

时间:2017-09-18 13:46:56

标签: android docker ssh android-emulator ssh-tunnel

我在主机A 上有一个 Docker容器,它在端口 5022上导出 SSH 服务。 例如。如果我想连接到容器,我通常会library(shiny) ui <- fluidPage( selectInput("table_no", "", choices = 1:ncol(iris)), tableOutput("tbl") ) server <- function(input, output, session) { output$tbl <- renderTable( { index <- as.numeric(input$table_no) colname <- colnames(iris)[index] out <- data.frame(iris[, index]) colnames(out) <- colname out }) } shinyApp(ui, server)

在Docker容器中,我有一个ADB服务器(Android Debug Bridge),它在端口5037上运行(这是默认端口)。例如,我可以在容器中运行ssh -p 5022 user@hostA以列出所有已连接的Android设备和模拟器。

我想这样做,但远程来自主持人B 。因此,从主机B,我希望将adb devices重定向到远程docker容器中的ADB。

我试图设置这样的隧道: adb devices 然后ssh -L 9999:127.0.0.1:5037 -N -T -p 5022 user@hostA但它不起作用:(并且隧道说adb -H 127.0.0.1 -P 9999 deviceserror: protocol fault (no status)

隧道:

channel 2: open failed: connect failed: Connection refused

ADB:

bash $ ssh -L 9999:127.0.0.1:5037 -N -T -p 5022 user@hostA user@hostA's password: channel 2: open failed: connect failed: Connection refused

修改1:

我也尝试过(失败):bash $ adb -H 127.0.0.1 -P 9999 devices error: protocol fault (no status) 其中172.17.0.11是ssh -N -T -L 9999:172.17.0.11:5037 -p 5022 user@host上docker容器的本地IP地址。然后host仍然不满意adb -H 127.0.0.1 -P 9999 devices

error: protocol fault (no status)的输出是:

docker ps

CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS cef3d4daf9bc cryptax/android-re "/usr/bin/supervisord" 23 hours ago Up 23 hours 0.0.0.0:5037->5037/tcp, 0.0.0.0:5554->5554/tcp, 0.0.0.0:5900->5900/tcp, 5555/tcp, 0.0.0.0:5022->22/tcp androidre 的输出包含:

docker inspect androidre

0 个答案:

没有答案