Docker机器:如何正确执行ssh命令?

Docker机器:如何正确执行ssh命令?,docker,boot2docker,docker-machine,Docker,Boot2docker,Docker Machine,我正在我的OSX本地主机上运行Docker。我创建了一台开发人员的机器,并尝试在SSH上运行一个命令到我的开发人员机器: ~$ docker-machine ssh dev -- ssh -o 'StrictHostKeyChecking no' \ -i /Users/yves/.docker/machine/machines/dev/id_rsa \ -N -L 5000:localhost:5000 root@harbor.dufour16.net & 我得到: [1

我正在我的OSX本地主机上运行Docker。我创建了一台开发人员的机器,并尝试在SSH上运行一个命令到我的开发人员机器:

~$ docker-machine ssh dev -- ssh -o 'StrictHostKeyChecking no' \
   -i /Users/yves/.docker/machine/machines/dev/id_rsa \
   -N -L 5000:localhost:5000 root@harbor.dufour16.net &
我得到:

[1] 28171
~$ exit status 255
那我就没有得到任何提示了。我需要使用CTRL-C,我得到:

[1]+  Exit 1 docker-machine ssh dev -- ssh -o 'StrictHostKeyChecking 
 no' -i /Users/yves/.docker/machine/machines/dev/id_rsa 
-N -L 5000:localhost:5000 root@harbor.dufour16.net

有没有正确执行的方法?(使用boot2docker更容易,因为要执行的命令被引用)。感谢您的反馈。

您应该能够使用引号,即:

ssh dev "ssh -o 'StrictHostKeyChecking no' \
        -i /Users/yves/.docker/machine/machines/dev/id_rsa \
        -N -L 5000:localhost:5000 root@harbor.dufour16.net &"

docker machine ssh
只接受两个参数;你不需要在dev后面加引号吗?看来引号是不被接受的。。需要使用--separator。。。请参阅子命令ssh(除非我读错了…),如果要附加的命令具有标志,例如df-h,则可以使用标志解析终止符(-),以避免混淆docker机器客户端,否则会将它们解释为您打算传递给它的标志:OK。我有一个类似的问题,用引号括起来是我让它工作的唯一方法。你是说docker machine ssh dev“ssh-o”StrictHostKeyChecking no'\>>-I/Users/yves/.docker/machine/machines/dev/id\u rsa\>-N-L 5000:localhost:5000root@harbor.dufour16.net&“我想是的,把它写下来作为答案。。。我会投赞成票的,谢谢。顺便问一下,使用
是否有效?我原以为你需要用nohup。