从远程机器上执行docker容器上的命令

时间:2015-12-27 04:34:24

标签: python bash docker fabric

我在主机上运行了docker。该主机上有两个docker容器,即container_1和container_2。现在我想从远程开发机器上执行container_1上的一些命令。

管道分离命令,即

sudo docker exec -it  container_1 sudo find <dir> - type f -iname *_abc_* -print0 | du --files0-from - -b | awk 'BEGIN{sum=0} {sum+=$1} END{print sum}'

仅在命令上方执行命令,直到第一个管道在docker容器上执行,下一组命令在主机上执行。

我正在使用python fabric api从远程计算机执行此操作。

有没有办法在远程计算机上对容器执行此完整命令?

1 个答案:

答案 0 :(得分:3)

那是因为管道命令实际上已经在你的主机上执行了,试试这个,它可能适合你:

sudo docker exec -it container_1 bash -c "sudo find - type f -iname_abc_ -print0 | du --files0-from - -b | awk 'BEGIN{sum=0} {sum+=$1} END{print sum}'"