You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过Dockerfile或Docker.DotNet设置容器重启策略?

配置Docker容器的unless-stopped重启策略

首先明确:Dockerfile无法配置容器的重启策略,因为重启策略是容器运行时的属性,不属于镜像配置,所以你当前的Dockerfile不需要做任何修改。

接下来分场景说明配置方式:

1. 创建容器时直接配置重启策略

重启策略需要在创建容器阶段设置,而非启动阶段。ContainerStartParameters仅用于给已创建的容器传递启动参数,无法用来配置重启策略。你需要在调用CreateContainerAsync时,通过CreateContainerParameters的HostConfig属性设置:

var createParams = new CreateContainerParameters
{
    Image = "你的镜像名称",
    Name = "容器名称",
    Entrypoint = new List<string> { "asd", "proj.dll" },
    HostConfig = new HostConfig
    {
        RestartPolicy = new RestartPolicy
        {
            Name = "unless-stopped"
        }
    }
};

// 先创建容器
var container = await dockerClient.Containers.CreateContainerAsync(createParams);

// 再启动容器
await container.StartContainerAsync(container.ID, null);

2. 给已创建的容器修改重启策略

如果容器已经创建完成,你可以通过UpdateContainerAsync来修改它的重启策略:

var updateParams = new ContainerUpdateParameters
{
    RestartPolicy = new RestartPolicy
    {
        Name = "unless-stopped"
    }
};

await dockerClient.Containers.UpdateContainerAsync(container.ID, updateParams);

补充说明

  • 重启策略的可选值包括:no(默认,不自动重启)、always(总是自动重启)、unless-stopped(手动停止后不再重启)、on-failure(容器异常退出时重启,可配合MaximumRetryCount设置重试次数)。

内容的提问来源于stack exchange,提问作者Ivan Andreev

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.30 09:58:13