// C# Docker 示例代码
using System;
using Docker.DotNet; // 引用 Docker SDK for .NET
using Docker.DotNet.Models;
using System.Threading.Tasks;
class Program
{
static async Task Main(string[] args)
{
// 创建 Docker 客户端
var client = new DockerClientConfiguration(new Uri("npipe://./")).CreateClient();
// 拉取镜像
await PullImage(client);
// 运行容器
await RunContainer(client);
}
private static async Task PullImage(DockerClient client)
{
var image = "hello-world";
var pullParameters = new ImagesPullParameters { Repository = image };
IAsyncEnumerable<ImageInspect> images = client.Images.PullImageAsync(pullParameters, null);
await foreach (var img in images)
{
Console.WriteLine($"Pulled Image: {img.ID}");
}
}
private static async Task RunContainer(DockerClient client)
{
var config = new ContainerConfig
{
Image = "hello-world",
Cmd = new string[] { "echo", "Hello from Docker!" }
};
var createParams = new CreateContainerParameters(config);
var container = await client.Containers.CreateContainerAsync(createParams);
Console.WriteLine($"Created Container: {container.ID}");
await client.Containers.StartContainerAsync(container.ID, new ContainerStartParameters());
Console.WriteLine("Container started.");
}
}
引用 Docker SDK for .NET:我们使用 Docker.DotNet
库来与 Docker 交互。确保你已经安装了这个库,可以通过 NuGet 包管理器安装。
创建 Docker 客户端:通过 DockerClientConfiguration
创建一个 Docker 客户端实例,用于与本地 Docker 守护进程通信。
拉取镜像:使用 PullImageAsync
方法从 Docker Hub 拉取指定的镜像(例如 hello-world
)。
运行容器:配置并创建一个新的容器,然后启动它。这里我们使用了一个简单的命令 echo "Hello from Docker!"
来演示如何在容器中执行命令。
异步方法:所有与 Docker 的交互都是异步的,以确保程序不会阻塞主线程。
希望这段代码能帮助你理解如何在 C# 中使用 Docker SDK 来管理和操作 Docker 容器。
上一篇:c#网页开发
下一篇:c#相对路径
Laravel PHP 深圳智简公司。版权所有©2023-2043 LaravelPHP 粤ICP备2021048745号-3
Laravel 中文站