【问题标题】:Docker. Can't start docker container with ssh command码头工人。无法使用 ssh 命令启动 docker 容器
【发布时间】:2020-11-29 21:31:30
【问题描述】:

我有命令运行 docker 容器 -- sudo docker run --privileged -d -p 6100:6080 -p 4743:4723 -p 5574:5554 -p 5575:5555 -v /home/androidApk:/root/AndroiApks -e DEVICE="Samsung Galaxy S6" -e APPIUM=true -e APPIUM_HOST="127.0.0.1" -e APPIUM_PORT=4723 --name=Samsung_Galaxy_S6-8.1-11.0.6 budtmo/docker-android-x86-8.1

如果我在本地使用此命令 - 容器将启动。

但我需要远程使用此命令(по ssh)。并且相同的命令(但添加了 ssh 密码)不会远程启动 docker 容器。

sudo sshpass -p "password" ssh akupyrev@<ip> -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no sudo docker run --privileged -d -p 6100:6080 -p 4743:4723 -p 5574:5554 -p 5575:5555 -v /home/androidApk:/root/AndroidApks -e DEVICE="Samsung Galaxy S6" -e APPIUM=true -e APPIUM_HOST="127.0.0.1" -e APPIUM_PORT=4723 --name=Samsung_Galaxy_S6-8.1-11.0.6 budtmo/docker-android-x86-8.1

来自控制台的错误 — docker:无效的引用格式:存储库名称必须为小写。

试图将命令包装到 '' - 没有效果。

UPD 1 :: ::: -e DEVICE="Samsung Galaxy S6" 中的主要问题 因为没有这个选项 - 容器启动正常

【问题讨论】:

    标签: bash docker ssh


    【解决方案1】:

    首先,ssh 存在语法问题。要远程执行的命令应该包含在引号之间,就像这样。

    ssh user1@server1 'command2'
    

    此外,根据您的错误,您可能需要转义空格

    sudo sshpass -p "password" ssh akupyrev@<ip>  -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no 'sudo docker run --privileged -d -p 6100:6080 -p 4743:4723 -p 5574:5554 -p 5575:5555 -v /home/androidApk:/root/AndroidApks -e DEVICE="Samsung\ Galaxy\ S6" -e APPIUM=true -e APPIUM_HOST="127.0.0.1" -e APPIUM_PORT=4723 --name=Samsung_Galaxy_S6-8.1-11.0.6 budtmo/docker-android-x86-8.1'
    

    其次,我不太确定使用sshpass 配置的sudo 的密码是否有效。 (你会看到)

    第三,在 remote ssh 中包装 docker run 命令可能不是在您的服务器上部署容器的最强大和最可靠的方式。您将如何 i) 返回 ii) 跟踪更改或 iii) 将容器与此类 hack 正确链接在一起?您最好探索诸如Helmansible 之类的系统来管理您的容器

    【讨论】:

    • 谢谢,但是没用。(还提到试过了。
    • 但我认为 -e DEVICE="Samsung Galaxy S6" 中的主要问题是因为没有这个选项 - 它开始正常 Mb 我可以用一些代码替换空格?
    • 在您的帖子中,您提到使用",这与您的docker run 命令中已经存在的冲突。您可以尝试转义空格:\
    • 天啊。谢谢 。你能补充你的答案吗?只需将 \ 添加到空格即可。最终命令ssh akupyrev@10.19.8.90 -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no 'sudo docker run --privileged -d -p 6100:6080 -p 4743:4723 -p 5574:5554 -p 5575:5555 -v /home/androidApk:/root/AndroidApks -e DEVICE="Samsung\ Galaxy\ S6" -e APPIUM=true -e APPIUM_HOST="127.0.0.1" -e APPIUM_PORT=4723 --name=Samsung_Galaxy_S6-8.1-11.0.6 budtmo/docker-android-x86-8.1'
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多