Example #1
0
        public void Test()
        {
            byte[]            text = ReadConfigText();
            MachineConfigJson conf = MachineConfigJson.Read(text);

            Assert.That(conf.Driver.IPAddress, Is.EqualTo("192.168.99.100"));
            Assert.That(conf.HostOptions.AuthOptions.ClientCertPath, Is.EqualTo("C:\\Users\\User1\\.docker\\machine\\certs\\cert.pem"));
            Assert.That(conf.HostOptions.AuthOptions.ClientKeyPath, Is.EqualTo("C:\\Users\\User1\\.docker\\machine\\certs\\key.pem"));
        }
        public async Task Connect()
        {
            connected = true;

            string            userProfile   = Environment.GetFolderPath(Environment.SpecialFolder.UserProfile);
            string            configPath    = Path.Combine(userProfile, @".docker\machine\machines", MachineName, "config.json");
            MachineConfigJson machineConfig = MachineConfigJson.Read(File.ReadAllBytes(configPath));

            string clientCertPath = machineConfig.HostOptions.AuthOptions.ClientCertPath;
            string clientKeyPath  = machineConfig.HostOptions.AuthOptions.ClientKeyPath;
            Uri    uri            = new Uri($"http://{machineConfig.Driver.IPAddress}:2376");

            X509Certificate2       cert        = CertificateUtils.ReadCertificateWithKey(clientCertPath, clientKeyPath, null);
            CertificateCredentials credentials = new CertificateCredentials(cert);

            DockerClientConfiguration config = new DockerClientConfiguration(uri, credentials);

            client = config.CreateClient();

            await Refresh();
        }