来自C#

时间:2016-10-11 09:19:31

标签: c# docker process docker-machine

是否有另一种方法可以从C#执行docker-machine命令。目前,我这样做的方式是:

  1. 开始Process
  2. Process启动"C:\Program Files\Git\bin\bash.exe"
  3. docker-machine inspect default命令作为ProcessStartInfo参数
  4. 传递

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

         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上执行但不在代码上执行。

0 个答案:

没有答案