python管理docker

本文介绍如何使用Python进行远程连接,以便管理虚拟机内的Docker容器,实现高效便捷的容器操作。
摘要由CSDN通过智能技术生成

利用python远程连接管理虚拟机中的docker容器

import tkinter as tk
from PIL import Image, ImageTk
import docker
import prettytable as pt

client2 = docker.from_env()
client = docker.DockerClient(base_url='tcp://192.168.43.41:2375')
# 创建的镜像的名字
image_name1 = "22fd781767b5"
image_name2 = "0081acdef01d"
# 连接的网络名称
net_work = 'multihost4'
# # 连接网络的ID
# network_id = '0b8e0589feeb'

# 心跳检测
import os
import threading


def isConnect():
    container_ls1 = client.containers.list()
    container_ls2 = client2.containers.list()
    lost_nodes = []
    for container in container_ls1:
        result = container.exec_run('ping 192.168.43.41 -c 1')
        # print(container.name+'回复 :',result)
        if 'Unreachable' in result:
            lost_nodes.append(container.name)
    for container in container_ls2:
        result = container.exec_run('ping 192.168.43.237 -c 1')
        # print(container.name + '回复 :', result)
        if 'Unreachable' in result:
            lost_nodes.append(container.name)
    return lost_nodes




def run(): # 定时器回调
    global timer
    lost_nodes = isConnect()
    if len(lost_nodes)!=0:
        print('有'+str(len(lost_nodes))+'个结点断网')
    else:
        print('容器网络状态正常')
    ping = os.popen('ping 192.168.43.237 -c 1').read()
    if 'Unreachable' in ping:
        # print(ping)
        print('网络错误,请检查主机的网络连接')
    else:
        print('心跳检测:主机之间的网络连接正常')
    timer = threading.Timer(5, run)
    timer.start()

timer = threading.Timer(2,run) # 1代表1秒后执行
timer.start()  # 启动定时器






# 创建一个类进行封装
class App:
    def __init__(self, master):
        # 使用默认套接字或环境中的配置进行连接
        self.prename = 'node'
        image = Image.open("back4.png")
        pyt = ImageTk.PhotoImage(image)
        label = tk.Label(master, image=pyt)
        label.image = pyt
        label.pack()

        # 头部文字
        theLabel = tk.Label(master, text="1111111111111111111111111111111111111", font=('微软雅黑', 16),bg='black',width='60')
        theLabel.pack(side='top')

        # 第一个frame
        frame = tk.Frame(master,bg='black',width='60')
        frame.pack()

        # 第一个frame中的输入文本框
        self.entry1 = tk.Entry(frame, font=('微软雅黑', 16),width='16',fg='#22C9C9')
        self.entry1.pack(side='left',fill='y',padx=60)
        self.entry1.insert(16, "容器个数")

        # self.num = entry1.get()

        # 第一个frame中的按钮
        self.hi_there = tk.Button(frame, text='立即创建',bg='#00BFFF',fg='white',command=self.create_docker, font=('微软雅黑', 16),width='16')
        self.hi_there.pack(side='right&
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值