首页 > 其他分享 >go语言操作docker终止容器

go语言操作docker终止容器

时间:2023-07-20 13:45:52浏览次数:44  
标签:容器 err fmt 终止 client 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("容器已成功终止!")
}

标签:容器,err,fmt,终止,client,go,docker
From: https://www.cnblogs.com/guangdelw/p/17568069.html

相关文章

  • golang io复用端口监听
    开发高性能server的时候,不可避免的需要接触到io复用——多个线程或者进程,可以创建一个或多个监听程序(监听同一个地址和端口),并且可以多个线程接收数据,让系统进行负载均衡。不同系统下有不同的模型:windows的iocp,linux的epoll和unix的kqueue。这里只讨论linux下的情况。如果使用io复......
  • 使用Docker+PHP搭建苹果Maccms的影视站详细教程
    自己做博客站太难了,SEO太差自己都搜不到,原文地址求你点进去看:https://typecho.hanzhe.site/archives/88说在前面很早之前还没参加工作的时候,手头没钱,想要看一些电影什么的充不了会员,一般都会在网上搜VIP影视这类的盗版网站,参加工作后对这些网站仍然很好奇,没有收入来源这些站是怎......
  • java怎么调用go
    如何在Java中调用GoGo是一种强大的编程语言,而Java是一种常用的开发语言。有时候,我们可能希望在Java中能够调用Go编写的代码,以便利用Go的一些特性来解决某些问题。本文将介绍如何在Java中调用Go,并提供一个示例来解决一个实际问题。问题描述假设我们有一个Java应用程序,需要对一些......
  • kkfileview docker部署
    使用Docker部署kkfileview在开发应用程序时,我们经常需要展示和预览各种类型的文件,例如PDF、Word、Excel等。kkfileview是一个功能强大的文件预览组件,通过使用Docker,我们可以轻松地将其部署到我们的项目中。Docker简介Docker是一个开源的容器化平台,可以帮助开发人员将应用程序及......
  • kettle连接mongodb
    Kettle连接MongoDB的实现步骤对于一个刚入行的开发者来说,实现Kettle连接MongoDB可能会有些困惑。下面我将为你详细介绍整个连接过程的步骤,并提供相应的代码示例。步骤概览下面是连接Kettle和MongoDB的整个流程的概览,我们将使用Kettle中的MongoDB输入(MongoDBInput)和输出(MongoDB......
  • k8s挂在docker目录
    在Docker中挂载Kubernetes目录的步骤介绍在Kubernetes(简称K8s)中,我们可以使用Volume挂载来实现在Pod中访问宿主机上的目录。本文将指导你如何在Docker中挂载Kubernetes目录。步骤概述下表展示了完成此任务的步骤概述:步骤描述步骤1创建一个KubernetesPod步骤2......
  • k8s docker 版本对应
    在使用Kubernetes(简称K8s)进行容器编排时,我们通常会使用Docker作为我们的容器运行时环境。Docker和Kubernetes之间的版本兼容性是一个重要的问题,因为不同版本的Docker和Kubernetes可能会有不同的特性和功能。本文将介绍Kubernetes和Docker之间的版本对应关系,并提供一些代码示例来帮......
  • jumperserver docker
    实现"jumperserverdocker"的流程为了实现"jumperserverdocker",我们可以按照以下步骤进行操作。下面是每个步骤的具体说明和相应的代码示例。步骤一:安装Docker在开始之前,你需要确保已经在你的机器上安装了Docker。如果没有安装,你可以按照以下步骤操作进行安装:打开终端或......
  • mongodb 集群迁移方案
    MongoDB集群迁移方案简介在实际开发中,可能会遇到需要将MongoDB集群迁移到新的环境的情况,本文将介绍一种常见的MongoDB集群迁移方案。迁移流程以下是迁移MongoDB集群的一般步骤:步骤描述1创建新的目标环境2备份源集群数据3在目标环境中配置MongoDB集群4将......
  • mongodb 获取所有数据
    MongoDB获取所有数据MongoDB是一种非关系型数据库,被广泛应用于大数据处理和实时数据分析场景中。在使用MongoDB时,我们经常需要获取数据库中的所有数据。本文将介绍如何使用MongoDB来获取所有数据,并提供相应的代码示例。连接到MongoDB在开始之前,我们需要先连接到MongoDB数据库。......