如何与通过docker守护进行交互来进行远程控制docker

1.首先我们需要修改docker服务的配置来暴露一个远程交互端口


        1.1 修改docker服务配置文件

vim /lib/systemd/system/docker.service

        1.2 按i进行编辑,添加以下内容,并按esc,最后按:wq保存

        1.3 重新加载刚才修改的配置文件

systemctl daemon-reload

        1.4 重启docker守护进程

systemctl restart docker

2. 配置好docker后我们尽可以写代码与docker守护进程进行交互了

        2.1 我使用的是"github.com/fsouza/go-dockerclient"库(因为这是目前使用最多的库)提供的接口与docker守护进程进行交互,首先我们需要下载这个库

go get github.com/fsouza/go-dockerclient

        2.2 下载好后,写代码来连接docker守护进程,其中192.168.30.123是你linux服务器的ip,大家需要自行修改。

package main

import (
	"fmt"

	docker "github.com/fsouza/go-dockerclient"
)

func main() {
	client, err := docker.NewClient("http://192.168.30.123:2376")
	if err != nil {
		return 
	}
	images, err := client.ListImages(docker.ListImagesOptions{All: false})
	if err != nil {
		panic(err)
	}
	for _, image := range images {
		fmt.Println("ID: ", image.ID)
		fmt.Println("RepoTags: ", image.RepoTags)
		fmt.Println("Created: ", image.Created)
		fmt.Println("Size: ", image.Size)
		fmt.Println("ParentId: ", image.ParentID)
	}
}

        2.3 写好之后,编译和运行就可以连接上docker守护进程了,并成功的获得了所有镜像的信息。

其中,

        ID:  是镜像ID
        RepoTags:  是镜像标签,一个镜像可以有多个标签,所以它是[]string类型
        Created:  是创建时间,它是unixNano格式,需要转换为人类可读的格式才能看懂
        Size:  是镜像大小,它是int64类型,单位是字节,如果除以1024*1024就是MB了
        ParentId: 是父镜像ID,如果没有父镜像,就会使空字符串

如果点赞到100的话,我会出一篇更详细的文章,包括镜像的创建、删除、查询、添加和删除标签、查看容器信息、启动容器、停止容器等使用golang语言与docker守护进行交互的教程。感谢大家的支持,如有错误欢迎指正。

  • 8
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
远程控制 Docker,你可以使用 Docker 的远程 API 或者 Docker Machine。这里我将简要介绍这两种方法。 1. Docker 远程 API: - 首先,确保在 Docker 主机上启用了远程访问。你可以编辑 Docker 的配置文件 `daemon.json`,将其中的 `"hosts"` 设置为 `"unix:///var/run/docker.sock", "tcp://<your-ip>:<port>"`,其中 `<your-ip>` 是 Docker 主机的 IP 地址,`<port>` 是你想要设置的端口号。 - 重启 Docker 服务以使配置生效。 - 确保你的防火墙允许从远程主机访问 Docker 主机的指定端口。 - 现在你可以使用 Docker 的远程 API 进行远程控制。你可以使用任何支持 HTTP 请求的工具(如 cURL 或 Postman)发送请求到 `<your-ip>:<port>`。 2. Docker Machine: - Docker Machine 是 Docker 官方提供的一个命令行工具,用于在远程主机上安装和管理 Docker 环境。 - 首先,安装 Docker Machine 工具。 - 使用命令 `docker-machine create --driver <your-driver> <machine-name>` 创建一个远程 Docker 主机,其中 `<your-driver>` 是你想要使用的驱动程序(如 VirtualBox、AWS 等),`<machine-name>` 是你给这个远程主机起的名称。 - 运行命令 `docker-machine env <machine-name>` 获取远程主机的环境变量配置,并将其导入到当前终端会话中。 - 现在你可以在本地终端上使用 Docker 命令,实际上是在远程主机上执行。 希望这些信息能帮到你!如有更多问题,请继续提问。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值