docker-machine命令来自C#

有没有另外一种方法来执行C#中的docker-machine命令。 目前我正在做的方式是:

  1. 开始一个Process
  2. Process启动"C:\Program Files\Git\bin\bash.exe"
  3. docker-machine inspect default命令作为ProcessStartInfoparameter passing

这是我目前正在使用的代码,目前仍然不知道如何检索从docker-machine inspect default命令的返回JSON,但我猜我可以从process.StandardOutput检索它process.StandardOutputstream。

  ProcessStartInfo psi = new ProcessStartInfo(); psi.WindowStyle = ProcessWindowStyle.Normal; psi.FileName = @"C:\Program Files\Git\bin\bash.exe"; psi.WorkingDirectory = @"C:\Program Files\Docker Toolbox"; psi.Arguments = @"--login -i ""C:\Program Files\Docker Toolbox\start.sh"" docker-machine inspect default"; psi.UseShellExecute = false; psi.RedirectStandardOutput = true; Process process = Process.Start(psi); 

正如你所看到的,这是非常繁琐的,例如,如果我不得不做另外几个docker-machine命令。

我也在看Docker Remote API,但是我似乎没有看到与Docker Machine交互的端点。

更新:

我用这种方式执行命令时遇到的一个问题是,有时这些命令不能正确计算。 例如, eval $(docker-machine env default)在Docker Toolbox上执行,但不在代码上。