我是靠谱客的博主 任性小笼包,最近开发中收集的这篇文章主要介绍python docker sdk_8.通过Python连接Docker进行编程,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

Docker其实有两个重要的概念:"Docker客户端"和"Docker守护进程" Docker服务端提供了一系列REST API (Docker Remote API),当我们敲docker命令时实际上是通过API和Docker服务端进行交互的。

我们可以自己编写Docker客户端,调用REST API 和Docker服务端进行交互。

Docker官方提供了Python和Go的SDK,当然我们可以自己用熟悉的语言调用REST API的方式。

官方文档地址:

Docker官方提供的连接方式:unix:///var/run/docker/sock

tcp://host:port

fd://docketfd

默认不支持远程访问

配置远程访问

vi /usr/lib/system/docker.service

// 把原本是下面这一行注释掉

ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock

// 添加如下这一行

ExecStart=/usr/bin/dockerd -H tcp://0.0.0.0:2375 -H fd:// --containerd=/run/containerd/containerd.sock

// 然后保存后,重启Docker

systemctl daemon-reload

systemctl restart docker

// 重启之后查看一下docker的守护进程,确认是否配置成功

ps -ef | grep docker

netstat -anput | grep docker

// 开启远程访问端口

iptables -I INPUT -p tcp --dport 2375 -j ACCEPT // 确保防火墙放行2375端口

// 阿里云的ECS上部署的Docker,还需在安全组规则添加入方向、tcp、2375端口的开通

// 使用本地测试连接

通过Python连接Docker测试

# 通过pip安装docker sdk

pip install docker

import docker

# 需要修改对应的Docker服务器IP地址

client = docker.DockerClient(base_url='tcp://Docker服务器的IP:2375')

# 获取所有镜像列表,相当于docker cli方式执行 docker images

images = client.images.list()

print(images) # 打印结果: [, ]

# 获取镜像id

print(images[0].id) # 打印结果:sha256:3ac6dda7648810e447c94fb9f919f6c2cfa97410935e60894ef94ea6e5e4d2d3

# 这里发现镜像id比直接使用docker cli方式执行 docker images获取的镜像id长,

# docker里面的各种镜像id、容器id都只要能确定唯一性就行了

这里只是通过自己写的程序连接Docker进行编程的一个实例,可以帮助我们理解Docker的管理工具的工作原理。8.通过Python连接Docker进行编程 - 编程故事​www.mi360.cn

最后

以上就是任性小笼包为你收集整理的python docker sdk_8.通过Python连接Docker进行编程的全部内容,希望文章能够帮你解决python docker sdk_8.通过Python连接Docker进行编程所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(62)

评论列表共有 0 条评论

立即
投稿
返回
顶部