翼度科技»论坛 云主机 服务器技术 查看内容

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

10

主题

10

帖子

30

积分

新手上路

Rank: 1

积分
30
docker导出指定时间段内日志

命令格式如下:
  1. docker logs --since <起始时间> --until <结束时间> <容器ID或名称> > <导出文件路径>
复制代码

    1. <起始时间>
    复制代码
    :指定要导出日志的起始时间,格式为YYYY-MM-DDTHH:MM:SS。
    1. <结束时间>
    复制代码
    :指定要导出日志的结束时间,格式为YYYY-MM-DDTHH:MM:SS。
    1. <容器ID或名称>
    复制代码
    :指定要导出日志的Docker容器ID或名称。
    1. <导出文件路径>
    复制代码
    :指定导出日志的文件路径和文件名。
例如:
要导出容器ID为
  1. 58c472a20857
复制代码
的Docker日志,在2023年7月7日00:00:00到2023年7月14日23:59:59之间的日志
可以使用以下命令:
  1. docker logs --since="2023-07-07T00:00:00" --until "2023-07-14T23:59:59" 58c472a20857 > log.txt
复制代码
目标检测中遇到的问题和docker导出日志


docker容器导出日志

导出日志在Linux服务器的本地目录下,可以直接下载
  1. docker logs 容器名称 > log.txt
复制代码
Flask使用main执行

1 改dockerfile 文件内容
  1. #CMD [ "python3", "-m" , "flask", "run", "--host=0.0.0.0"]
  2. CMD [ "python", "./app.py" ]
复制代码
2 改 app.py 中的内容
  1. from flask import Flask

  2. app = Flask(__name__)

  3. @app.route('/')
  4. def hello():
  5.     return "Hello, World!"

  6. if __name__ == '__main__':
  7.     app.run(host='0.0.0.0')
复制代码
针对加载模型时间过长

将模型在主程序 main 中加载,进行flask交互时,将全局变量直接导入使用模块中,比如提前加载YOLOv5模型。
  1. if __name__ == "__main__":
  2.     os.makedirs("./config/", exist_ok=True)
  3.     config = Config('config/config.json')

  4.     print("加载YOLO模型:")
  5.     # 从本地目录加载自定义的YOLOv5模型
  6.     yolo_model = torch.hub.load('yolov5', 'custom', path='yolov5/best.pt', source='local')
  7.     # 设置置信度阈值
  8.     yolo_model.conf = config.floating_threshold
  9.     app.run(host='0.0.0.0')
复制代码
提取图片中的识别区,将无关部分去除
  1. def adjust_img_size(img, width_ratio=1, height_ratio=0.8, padding_color=(255, 255, 255)):
  2.     """
  3.     获取图片中间长宽各1/2的中间区域,外部全部填充为指定颜色。
  4.     Parameters:
  5.         img (numpy.ndarray or PIL.Image.Image): 输入的图片,可以是numpy数组或PIL图像对象。
  6.         padding_color (tuple): 填充的颜色,格式为 (R, G, B)。
  7.         width_ratio:ratio
  8.         height_ratio:ratio
  9.     Returns:
  10.         numpy.ndarray: 调整后的图片数组。
  11.     """
  12.     # 将输入图片转换为numpy数组
  13.     if isinstance(img, Image.Image):
  14.         img = np.array(img)

  15.     # 获取图片尺寸
  16.     height, width, channels = img.shape

  17.     # 创建填充区域
  18.     padding = np.full((height, width, channels), padding_color, dtype=np.uint8)

  19.     # 计算截取的高度和宽度
  20.     crop_height = int(height * height_ratio)
  21.     crop_width = int(width * width_ratio)

  22.     height_1 = int((height - crop_height)*0.5)
  23.     width_1 = int((width - crop_width) * 0.5)

  24.     # 截取图像
  25.     cropped_image = img[height_1:crop_height + height_1, width_1:crop_width + width_1]

  26.     # 将原始图片放入填充区域的中间
  27.     padding[height_1:crop_height + height_1, width_1:crop_width + width_1] = cropped_image

  28.     return padding
复制代码
返回图片中固定比例的点
  1. def get_point(img, height_ratio, width_ratio):
  2.     """返回图片中的点目标点,用于在图上做标注"""
  3.     # 获取图片尺寸
  4.     height, width, channels = img.shape
  5.     # print('查看形状:', img.shape)

  6.     # 计算截取的高度和宽度
  7.     crop_height = int(height * height_ratio)
  8.     crop_width = int(width * width_ratio)

  9.     height_1 = int((height - crop_height))
  10.     width_1 = int((width - crop_width) * 0.5)

  11.     width_2 = width - width_1
  12.     height_2 = height - int((height - crop_height) * 0.5)
  13.     # print('查看返回值:', width_1, height_1, width_2, height_2)

  14.     return width_1, height_1, width_2, height_2
复制代码
总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

来源:https://www.jb51.net/server/321082w51.htm
免责声明:由于采集信息均来自互联网,如果侵犯了您的权益,请联系我们【E-Mail:cb@itdo.tech】 我们会及时删除侵权内容,谢谢合作!

举报 回复 使用道具