在远程计算机上执行docker容器上的命令

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

pipe道分隔命令即,

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}' 

上面的命令只是先执行命令,直到第一个pipe道在docker容器上执行,下一个命令在主机上执行。

我使用python结构api从远程机器执行此操作。

有什么办法从远程机器上执行这个完整的容器命令?

这是因为pipe命令实际上是在你的主机上执行的,试试这个,它可能适用于你:

 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}'"