如何从在docker主机中运行的主机运行复杂的docker命令?

时间:2014-07-16 20:44:13

标签: bash vagrant docker

假设我有一台主机和一台运行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脚本的情况下运行这样的命令?

1 个答案:

答案 0 :(得分:4)

尝试在命令周围使用单引号,这样可以阻止shell进行插值,然后才能在vagrant box上运行。

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