Laravel  
laravel
文档
数据库
架构
入门
php技术
    
Laravelphp
laravel / php / java / vue / mysql / linux / python / javascript / html / css / c++ / c#

c# docker

作者:硝烟   发布日期:2025-10-02   浏览:57

// 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.");
    }
}

解释说明:

  1. 引用 Docker SDK for .NET:我们使用 Docker.DotNet 库来与 Docker 交互。确保你已经安装了这个库,可以通过 NuGet 包管理器安装。

  2. 创建 Docker 客户端:通过 DockerClientConfiguration 创建一个 Docker 客户端实例,用于与本地 Docker 守护进程通信。

  3. 拉取镜像:使用 PullImageAsync 方法从 Docker Hub 拉取指定的镜像(例如 hello-world)。

  4. 运行容器:配置并创建一个新的容器,然后启动它。这里我们使用了一个简单的命令 echo "Hello from Docker!" 来演示如何在容器中执行命令。

  5. 异步方法:所有与 Docker 的交互都是异步的,以确保程序不会阻塞主线程。

希望这段代码能帮助你理解如何在 C# 中使用 Docker SDK 来管理和操作 Docker 容器。

上一篇:c#网页开发

下一篇:c#相对路径

大家都在看

c# 二进制

c# tcp client

c# type.gettype

c# sqlconnection

c# string.format 小数位数

.net和c#

c#获取系统时间

c#游戏开发

c#网络编程

c# rectangle

Laravel PHP 深圳智简公司。版权所有©2023-2043 LaravelPHP 粤ICP备2021048745号-3

Laravel 中文站