go语言操作docker终止容器

代码部分

package main

import (
	"context"
	"fmt"
	"os"

	"github.com/docker/docker/api/types/container"
	"github.com/docker/docker/client"
)

func main() {
	// 设置远程Docker守护进程的地址
	remoteDockerURL := "tcp://10.0.0.12:2376" // 将remote-docker-host替换为远程Docker守护进程的IP地址或域名

	// 创建Docker客户端,并指定远程Docker守护进程地址
	cli, err := client.NewClientWithOpts(
		client.WithHost(remoteDockerURL),
		// client.WithVersion("1.41"),
		client.WithAPIVersionNegotiation(),
		client.WithTLSClientConfig("cert/ca.pem", "cert/cert.pem", "cert/key.pem"),
	)
	if err != nil {
		fmt.Println("创建docker客户端失败:", err)
		os.Exit(1)
	}
	// 设置容器名称
	containerID := "nginx"

	// 设置终止容器的超时时间(可选,如果不需要超时可以忽略此步骤)
	timeout := 10 // 设置终止容器的超时时间为10秒

	// 使用cli.ContainerStop方法终止容器
	err = cli.ContainerStop(context.Background(), containerID, container.StopOptions{
		Timeout: &timeout,
	})
	if err != nil {
		fmt.Println("终止容器出错:", err)
		return
	}

	fmt.Println("容器已成功终止!")
}
posted @ 2023-07-20 13:30  厚礼蝎  阅读(38)  评论(0编辑  收藏  举报