Пример #1
0
        async Task StartDockerClient()
        {
            await Task.Run(async() =>
            {
                //start docker connection
                switch (CurrentInstallerType)
                {
                case InstallerType.HYPER_V:
                    Log.Info("Starting HyperV Docker");

                    dockerclient = new DockerClientConfiguration(new Uri("npipe://./pipe/docker_engine")).CreateClient();
                    break;

                case InstallerType.NO_HYPER_V:
                    Log.Info("Starting Toolbox Docker");

                    var info = await Process.Start(new ProcessStartInfo("docker-machine", "env --shell=cmd")
                                                   //var info = await Process.Start(new ProcessStartInfo("cmd.exe","/C @FOR / f \"tokens=*\" % i IN('docker-machine env') DO @% i")
                    {
                        //var info = await Process.Start(new ProcessStartInfo("whoami") {
                        RedirectStandardError  = true,
                        RedirectStandardOutput = true,
                        UseShellExecute        = false,
                        CreateNoWindow         = true,
                        WindowStyle            = ProcessWindowStyle.Hidden
                    }).StandardOutput.ReadToEndAsync();

                    foreach (var line in info.Split('\n'))
                    {
                        if (line.Contains("="))
                        {
                            var parts = line.Split('=');
                            Environment.SetEnvironmentVariable(parts[0].Remove(0, 4), parts[1]);
                        }
                    }

                    var host = Environment.GetEnvironmentVariable("DOCKER_HOST");
                    var path = Environment.GetEnvironmentVariable("DOCKER_CERT_PATH");

                    byte[] certBuffer = Helpers.GetBytesFromPEM(File.ReadAllText(Path.Combine(path, "cert.pem")), PemStringType.Certificate);
                    byte[] keyBuffer  = Helpers.GetBytesFromPEM(File.ReadAllText(Path.Combine(path, "key.pem")), PemStringType.RsaPrivateKey);

                    X509Certificate2 certificate = new X509Certificate2(certBuffer);

                    RSACryptoServiceProvider prov = Crypto.DecodeRsaPrivateKey(keyBuffer);
                    certificate.PrivateKey        = prov;


                    ServicePointManager.ServerCertificateValidationCallback += (o, c, ch, er) => true;

                    var credentials = new CertificateCredentials(certificate);

                    dockerclient = new DockerClientConfiguration(new Uri(host), credentials).CreateClient();
                    break;
                }
            });
        }
        private void SetupDockerClient()
        {
            //string pfxFilePath = Environment.CurrentDirectory + @"\key.pfx";
            //Debug.WriteLine("Path=" + pfxFilePath);
            //byte[] file = File.ReadAllBytes(pfxFilePath); 
            //var credentials = new CertificateCredentials(new X509Certificate2(file, password));
            //client = new DockerClientConfiguration(new Uri(_host), credentials).CreateClient();
            client = new DockerClientConfiguration(new Uri(_host)).CreateClient();

        }
Пример #3
0
 internal ContainerOperations(DockerClient client)
 {
     this.Client = client;
 }
Пример #4
0
 internal TasksOperations(DockerClient client)
 {
     this._client = client;
 }
Пример #5
0
 internal SwarmOperations(DockerClient client)
 {
     this._client = client;
 }
 internal SecretsOperations(DockerClient client)
 {
     this._client = client;
 }
Пример #7
0
 internal ImageOperations(DockerClient client)
 {
     this.Client = client;
 }
 internal ImageOperations(DockerClient client)
 {
     this.Client = client;
 }
 internal VolumeOperations(DockerClient client)
 {
     this._client = client;
 }
Пример #10
0
 internal MiscellaneousOperations(DockerClient client)
 {
     this._client = client;
 }
Пример #11
0
 internal ConfigsOperations(DockerClient client)
 {
     this._client = client;
 }
 internal MiscellaneousOperations(DockerClient client)
 {
     this.Client = client;
 }
Пример #13
0
 internal ExecOperations(DockerClient client)
 {
     this._client = client;
 }
 internal PluginOperations(DockerClient client)
 {
     this._client = client;
 }
Пример #15
0
 internal SwarmOperations(DockerClient client)
 {
     this._client         = client;
     SwarmResponseHandler = new ApiResponseErrorHandlingDelegate(ErrorHandler);
 }
Пример #16
0
 internal ContainerOperations(DockerClient client)
 {
     this._client = client;
 }
 internal NetworkOperations(DockerClient client)
 {
     this._client = client;
 }
Пример #18
0
 public ConfigOperations(DockerClient client)
 {
     _client = client;
 }