两种方法
1. docker-py 的方法 但是我看了下好像 docker-py的版本如果和docker的版本不一致是会报错的
import docker
def docker_id():
client = docker.from_env(version='auto')
docker_ps_list = client.containers()
length = len(docker_ps_list)
print(length)
l = []
for container in docker_ps_list:
print(container["Id"])
# write_cfg(container["Id"])
l.append(container["Id"])
return l
2,直接将dokcer的命令写到python 脚本中去 也是最简单的方法,用call的方法是将结果显示在linxu中,Popen是获取到python中,当然获取的是个buffer的形式,stdout一下 就是byte形式 再转换下就OK了得到string形式
import subprocess
def get_dockerId():
p = subprocess.Popen("cat /proc/self/cgroup | grep /docker | head -1 | cut -d/ -f3", shell=True,stdout=subprocess.PIPE)
#p = subprocess.call("cat /proc/self/cgroup | grep /docker | head -1 | cut -d/ -f3", shell=True)
out = p.stdout.read()
id = str(out, 'utf-8')
return id