我需要通过SSH获取在远程服务器上运行的所有docker容器的信息。可能有几百个docker容器同时运行。获取所有信息的最有效方法是什么? Rest API不是一个选项。 我需要做的是
ssh root@blah.com
execute docker container ls
# get containers info
for container_id in containers:
execute docker inspect container_id
我无法将命令输出写入文件。
答案 0 :(得分:0)
答案 1 :(得分:0)
import paramiko
ssh = paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
ssh.connect(Ip, Port, UserName, PassWord)
stdin, stdout, stderr = ssh.exec_command("docker ps | sed -n '2,$p' |awk '{print $1}'")
#docker container id list
conIdList = stdout.readlines()
获取容器ID列表后,可以使用多线程/异步来执行ssh命令docker inspect ContainerID
,我认为paramiko可以处理它,但可能很耗时。