我尝试执行的命令
docker exec apache_mp 'find / -type f -name artisan 2>&1 | grep -v "Permission denied"'
Run Code Online (Sandbox Code Playgroud)
回报
OCI 运行时执行失败:执行失败:container_linux.go:348: 启动容器进程导致“exec: \”find / -type f -name artisan 2>&1 | grep -v 权限\": stat find / -type f -name artisan 2>&1 | grep -v 权限: 没有这样的文件或目录": 未知
这很奇怪,因为当从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"'
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3702 次 |
| 最近记录: |