Docker exec命令中的管道返回错误
我试图执行的命令Docker exec命令中的管道返回错误,docker,exec,Docker,Exec,我试图执行的命令 docker exec apache_mp 'find / -type f -name artisan 2>&1 | grep -v "Permission denied"' 返回 OCI运行时exec失败:exec失败:容器\u linux.go:348:启动 容器进程导致“exec:\”find/-type f-name artisan 2>&1| grep-v权限\“:stat find/-type f-name artisan 2>&1 | grep-v
docker exec apache_mp 'find / -type f -name artisan 2>&1 | grep -v "Permission denied"'
返回
OCI运行时exec失败:exec失败:容器\u linux.go:348:启动
容器进程导致“exec:\”find/-type f-name artisan 2>&1|
grep-v权限\“:stat find/-type f-name artisan 2>&1 | grep-v
权限:没有此类文件或目录:未知
这很奇怪,因为从它运行同一个命令确实有效。为什么会这样
Docker假定容器名称后的第一个参数应该是要执行的二进制文件。由于括号中有
'find/-type f-name artisan 2>&1 | grep-v“Permission denied”
,docker认为这一切都是二进制文件的名称
您可以使用bash作为二进制文件使其工作:
docker exec apache_mp /bin/bash -c ' find / -type f -name artisan 2>&1 | grep -v "Permission denied"'
docker exec-it-u root splunkuniversalforwarder bash-c'find-iname“*.conf”| xargs-d'\''\n'\''grep forward server'