当前位置: 代码网 > 服务器>服务器>云虚拟主机 > docker如何导出指定时间段内日志

docker如何导出指定时间段内日志

2024年05月26日 云虚拟主机 我要评论
docker导出指定时间段内日志命令格式如下:docker logs --since <起始时间> --until <结束时间> <容器id或名称> > &l

docker导出指定时间段内日志

命令格式如下:

docker logs --since <起始时间> --until <结束时间> <容器id或名称> > <导出文件路径>
  • <起始时间>:指定要导出日志的起始时间,格式为yyyy-mm-ddthh:mm:ss。
  • <结束时间>:指定要导出日志的结束时间,格式为yyyy-mm-ddthh:mm:ss。
  • <容器id或名称>:指定要导出日志的docker容器id或名称。
  • <导出文件路径>:指定导出日志的文件路径和文件名。

例如:

要导出容器id为58c472a20857的docker日志,在2023年7月7日00:00:00到2023年7月14日23:59:59之间的日志

可以使用以下命令:

docker logs --since="2023-07-07t00:00:00" --until "2023-07-14t23:59:59" 58c472a20857 > log.txt

目标检测中遇到的问题和docker导出日志

docker容器导出日志

导出日志在linux服务器的本地目录下,可以直接下载

docker logs 容器名称 > log.txt

flask使用main执行

1 改dockerfile 文件内容

#cmd [ "python3", "-m" , "flask", "run", "--host=0.0.0.0"]
cmd [ "python", "./app.py" ]

2 改 app.py 中的内容

from flask import flask
 
app = flask(__name__)
 
@app.route('/')
def hello():
    return "hello, world!"
 
if __name__ == '__main__':
    app.run(host='0.0.0.0')

针对加载模型时间过长

将模型在主程序 main 中加载,进行flask交互时,将全局变量直接导入使用模块中,比如提前加载yolov5模型。

if __name__ == "__main__":
    os.makedirs("./config/", exist_ok=true)
    config = config('config/config.json')
 
    print("加载yolo模型:")
    # 从本地目录加载自定义的yolov5模型
    yolo_model = torch.hub.load('yolov5', 'custom', path='yolov5/best.pt', source='local')
    # 设置置信度阈值
    yolo_model.conf = config.floating_threshold
    app.run(host='0.0.0.0')

提取图片中的识别区,将无关部分去除

def adjust_img_size(img, width_ratio=1, height_ratio=0.8, padding_color=(255, 255, 255)):
    """
    获取图片中间长宽各1/2的中间区域,外部全部填充为指定颜色。
    parameters:
        img (numpy.ndarray or pil.image.image): 输入的图片,可以是numpy数组或pil图像对象。
        padding_color (tuple): 填充的颜色,格式为 (r, g, b)。
        width_ratio:ratio
        height_ratio:ratio
    returns:
        numpy.ndarray: 调整后的图片数组。
    """
    # 将输入图片转换为numpy数组
    if isinstance(img, image.image):
        img = np.array(img)
 
    # 获取图片尺寸
    height, width, channels = img.shape
 
    # 创建填充区域
    padding = np.full((height, width, channels), padding_color, dtype=np.uint8)
 
    # 计算截取的高度和宽度
    crop_height = int(height * height_ratio)
    crop_width = int(width * width_ratio)
 
    height_1 = int((height - crop_height)*0.5)
    width_1 = int((width - crop_width) * 0.5)
 
    # 截取图像
    cropped_image = img[height_1:crop_height + height_1, width_1:crop_width + width_1]
 
    # 将原始图片放入填充区域的中间
    padding[height_1:crop_height + height_1, width_1:crop_width + width_1] = cropped_image
 
    return padding

返回图片中固定比例的点

def get_point(img, height_ratio, width_ratio):
    """返回图片中的点目标点,用于在图上做标注"""
    # 获取图片尺寸
    height, width, channels = img.shape
    # print('查看形状:', img.shape)
 
    # 计算截取的高度和宽度
    crop_height = int(height * height_ratio)
    crop_width = int(width * width_ratio)
 
    height_1 = int((height - crop_height))
    width_1 = int((width - crop_width) * 0.5)
 
    width_2 = width - width_1
    height_2 = height - int((height - crop_height) * 0.5)
    # print('查看返回值:', width_1, height_1, width_2, height_2)
 
    return width_1, height_1, width_2, height_2

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持代码网。

(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2025  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com