代码之家  ›  专栏  ›  技术社区  ›  online Thomas

docker exec命令中的管道返回错误

  •  0
  • online Thomas  · 技术社区  · 6 年前

    我尝试执行的命令

    docker exec apache_mp'find/-type f-name artisan 2>&1 grep-v“permission denied”'
    < /代码> 
    
    

    返回< /P> < Buff行情>

    OCI运行时执行失败:执行失败:容器\linux.go:348:正在启动 容器进程导致“exec:\”find/-type f-name artisan 2>&1| grep-v permission\“:stat find/-type f-name artisan 2>&1 grep-v 权限:无此文件或目录:未知

    < /块引用>

    这很奇怪,当从portainer运行相同的命令时。为什么会这样?

    .

    收益率

    OCI运行时执行失败:执行失败:容器\linux.go:348:正在启动 容器进程导致“exec:\”find/-type f-name artisan 2>&1| grep-v permission\“:stat find/-type f-name artisan 2>&1 grep-v 权限:无此文件或目录:未知

    这很奇怪,就像运行来自portainer它确实有效。为什么会这样?

    1 回复  |  直到 6 年前
        1
  •  1
  •   Ignacio Millán    6 年前

    Docker假定容器名称后面的第一个参数应该是要执行的二进制文件。AS '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"'