“docker ps”在C#和CMD中不接受参数

f1tvaqid  于 12个月前  发布在  Docker
关注(0)|答案(1)|浏览(191)

在项目中,我想使用命令docker ps -a --format '{{json .}}'从progress中获取输出
但过程错误用"docker ps" accepts no arguments
下面是C#中的代码

var startInfo = new ProcessStartInfo("docker")
        {
            UseShellExecute = false,
            RedirectStandardOutput = true,
            RedirectStandardError = true,
            CreateNoWindow = true,
            Arguments = "ps -a --format '{{json .}}'",
            WorkingDirectory = workingDirectory
        };
        var process = Process.Start(startInfo);

字符串
终端中的命令运行正常。我在cmd中进行了测试,如cmd /c "docker ps -a --format '{{json .}}'",它使用C#输出了相同的错误
那么如何解决呢?
谢谢.

scyqe7ek

scyqe7ek1#

对于任何遇到同样问题的人,我找到了解决方案here
调用bash而不是直接调用docker
例如,调用docker ps -a --format '{{json .}}'

var startInfo = new ProcessStartInfo("bash")
        {
            UseShellExecute = false,
            RedirectStandardOutput = true,
            RedirectStandardError = true,
            CreateNoWindow = true,
            Arguments = "-c \"docker ps -a --format '{{json .}}'\"",
            WorkingDirectory = workingDirectory
        };
        var process = Process.Start(startInfo);

字符串

相关问题