管道 Docker 执行命令 returns 出错
Piping in Docker exec command returns an error
我尝试执行的命令
docker exec apache_mp 'find / -type f -name artisan 2>&1 | grep -v "Permission denied"'
returns
OCI runtime exec failed: exec failed: container_linux.go:348: starting
container process caused "exec: \"find / -type f -name artisan 2>&1 |
grep -v Permission\": stat find / -type f -name artisan 2>&1 | grep -v
Permission: no such file or directory": unknown
这很奇怪,因为 运行 来自 portainer 的相同命令确实有效。这是为什么?
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 apache_mp 'find / -type f -name artisan 2>&1 | grep -v "Permission denied"'
returns
OCI runtime exec failed: exec failed: container_linux.go:348: starting container process caused "exec: \"find / -type f -name artisan 2>&1 | grep -v Permission\": stat find / -type f -name artisan 2>&1 | grep -v Permission: no such file or directory": unknown
这很奇怪,因为 运行 来自 portainer 的相同命令确实有效。这是为什么?
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"'