Session¶
Constructor
Session(SessionSettings settings)- rejects
nullptrsettings.
Methods
Start()Terminate()CreateContainer(ContainerSettings containerSettings)PullImage(PullImageOptions options)PullImageAsync(PullImageOptions options)ImportImage(hstring path, hstring imageName)ImportImageAsync(hstring path, hstring imageName)LoadImage(hstring path)LoadImageAsync(hstring path)PushImage(PushImageOptions options)PushImageAsync(PushImageOptions options)DeleteImage(hstring nameOrId)TagImage(TagImageOptions options)CreateVhdVolume(VhdOptions options)DeleteVhdVolume(hstring name)Authenticate(Uri serverAddress, hstring username, hstring password)GetImages()- event
Terminated - event
ProcessCrashed Close()
Behavior notes
Start()is one-shot; calling it twice throws.- Most methods call
EnsureStarted()first. ImportImage/ImportImageAsyncandLoadImage/LoadImageAsyncare path-based only.Authenticaterequires a non-nullUriand non-empty username.GetImages()materializes WinRTImageInfoobjects from the C array returned byWslcListSessionImages.
Examples
Session session{ settings };
session.Terminated([](SessionTerminationReason reason)
{
printf("session terminated: %d\n", static_cast<int>(reason));
});
session.ProcessCrashed([](ProcessCrashInformation const& info)
{
printf("process crashed: %ws\n", info.ProcessName().c_str());
});
session.Start();
auto importOp = session.ImportImageAsync(L"C:\\images\\alpine.tar", L"demo/alpine:latest");
importOp.Progress([](auto&&, ImageProgress const& p) { /* progress */ });
co_await importOp;
auto token = session.Authenticate(
winrt::Windows::Foundation::Uri{ L"https://registry.example.com" },
L"user",
L"password");
auto images = session.GetImages();
for (auto const& image : images)
{
printf("%ws\n", image.Name().c_str());
}
PullImageOptions pullOptions = {};
auto pullOp = session.PullImageAsync(pullOptions);
pullOp.Progress([](auto&&, ImageProgress const& p) { /* progress */ });
co_await pullOp;
PushImageOptions pushOptions = {};
co_await session.PushImageAsync(pushOptions);
TagImageOptions tagOptions = {};
session.TagImage(tagOptions);
VhdOptions vhdOptions = {};
session.CreateVhdVolume(vhdOptions);
session.DeleteVhdVolume(L"build-cache");