在使用 Golang Docker SDK 中的 ContainerCreate 方法创建容器后,调用 ContainerStart 方法启动容器时,如果容器启动后立即停止,可能是因为容器没有运行一个长期运行的进程。可以通过以下两种方式让容器一直在后台运行:

  1. 在创建容器时,通过设置启动命令来指定容器运行的进程。例如,可以使用'docker run -d'命令将容器以后台模式运行,并指定一个长期运行的进程。在 Golang Docker SDK 中,可以通过设置'config.Cmd'字段来实现。例如:
config := &container.Config{
    Image: "your_image",
    Cmd:   []string{"tail", " -f", "/dev/null"},
}

上述代码中,'tail -f /dev/null'命令会一直在后台运行,保持容器处于运行状态。

  1. 在创建容器时,通过设置容器的'HostConfig.AutoRemove'字段为'false',可以防止容器在退出时自动删除。例如:
hostConfig := &container.HostConfig{
    AutoRemove: false,
}

上述代码中,'AutoRemove'字段设置为'false',表示容器在退出时不会自动删除,从而保持容器一直在后台运行。

可以根据具体需求选择适合的方式来让容器一直在后台运行。

Golang Docker SDK 容器启动后立即停止问题解决方案

原文地址: https://www.cveoy.top/t/topic/fMHU 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录