我怎样才能在Docker主机上运行的主机运行一个复杂的docker命令?

比方说,我有一台主机和一台运行Docker的Vagrant Virtualbox。 如果我想在stream浪汉上运行一个docker命令,我可以做一些事情:

vagrant ssh -c "docker ps" 

如果我想移除所有的容器,我可以从stream浪汉中运行:

 docker rm $(docker ps -a -q) 

试图从stream浪汉外面取出所有的容器,但是:

 vagrant ssh -c "docker rm $(docker ps -a -q)" 

不起作用。 它试图在主机上运行“docker ps -a -q”,而不是在Vagrant中运行。 如果我尝试:

 vagrant ssh -c "docker rm $(vagrant ssh -c \"docker ps -a -q\")" 

我接近了一点,但是没有工作。 我怎样才能运行这样的命令,而不必直接进入vagrant或有一个shell脚本运行?

尝试在命令周围使用单引号,这样可以防止你的shell在插槽上运行之前进行插值。

vagrant ssh -c 'docker rm $(docker ps -a -q)'