简体   繁体   English

Docker。 无法使用 ssh 命令启动 docker 容器

[英]Docker. Can't start docker container with ssh command

I have command to run docker container -- 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我有运行 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

If i use this command locally - container will start up.如果我在本地使用此命令 - 容器将启动。

But i need use this command remotly(по ssh).但我需要远程使用这个命令(по ssh)。 And same command(but with adding ssh password) doesn't start docker container remotely.同样的命令(但添加 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

Error from console — docker: invalid reference format: repository name must be lowercase.来自控制台的错误 — docker:无效的引用格式:存储库名称必须为小写。

Tried to wrap command to '' - no effects.试图将命令包装到 '' - 没有效果。

UPD 1:: The main problem in::: -e DEVICE="Samsung Galaxy S6" because without this option - container start ok UPD 1:: 中的主要问题::: -e DEVICE="Samsung Galaxy S6" 因为没有这个选项 - 容器启动正常

Firstly, there is a syntax issue with ssh .首先, ssh存在语法问题 Command to be executed remotely should be included between quotes, like so.要远程执行的命令应该包含在引号之间,就像这样。

ssh user1@server1 'command2'

Moreover, based on your error, you might need to escape spaces此外,根据您的错误,您可能需要转义空格

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'

Secondly, I am not quite sure if sudo 's password provisioned with sshpass will work.其次,我不太确定sudo使用sshpass提供的密码是否有效。 (you'll see) (你会看到的)

Thirdly, wrapping docker run commands in remote ssh might not be the most robust and reliable way to deploy containers on you server.第三,在远程ssh 中包装docker run命令可能不是在您的服务器上部署容器的最强大和最可靠的方法。 How would you i) go back ii) keep track of changes or iii) properly link containers together with such a hack?您将如何 i) go 返回 ii) 跟踪更改或 iii) 将容器与这样的 hack 正确链接在一起? You would better explore systems such as Helm or ansible to manage your containers您最好探索Helmansible等系统来管理您的容器

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM