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

标签 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 从远程计算机执行此操作。

有什么方法可以从远程计算机上的容器上执行这个完整的命令吗?

最佳答案

那是因为管道命令实际上是在您的主机上执行的,试试这个,它可能对您有用:

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

关于python - 从远程机器上的 docker 容器上执行命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34477591/

相关文章:

python - Pandas 迭代中每一行的并行处理

linux - shell 脚本 : How to read standard output of a program from console

docker - 让 NGINX 与 Gunicorn Web 应用程序一起使用

docker - Docker不会将文件夹从主机同步到容器

python - 为什么这个浮点转换异常没有被很好地捕获?

python - 在 Python 的 WebDriver 中移动/最小化/调整 PhantomJS shell 的大小

bash - zgrep目录中的多个gz文件

bash - 我可以根据增量大小限制 rsync 传输的大小吗?

docker - 容器内的用户和组存在问题

python - Mac 上缺少(?)Python 2.7 框架