是否有另一种方法可以从C#执行docker-machine
命令。目前,我这样做的方式是:
Process
Process
启动"C:\Program Files\Git\bin\bash.exe"
docker-machine inspect default
命令作为ProcessStartInfo
参数这是我目前正在使用的代码,目前仍然不知道如何从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上执行但不在代码上执行。