假设我有一台主机和一台运行Docker的Vagrant Virtualbox。 如果我想对流浪者运行一个泊坞人命令,我可以做以下几点:
vagrant ssh -c "docker ps"
如果我想移除所有容器中的容器,我将能够运行:
docker rm $(docker ps -a -q)
尝试使用以下方法从流浪者外部移除所有容器:
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\")"
我离得更近,但不太合适。如何在不必直接输入流浪者或运行shell脚本的情况下运行这样的命令?
答案 0 :(得分:4)
尝试在命令周围使用单引号,这样可以阻止shell进行插值,然后才能在vagrant box上运行。
vagrant ssh -c 'docker rm $(docker ps -a -q)'