Docker如何一次查看多个容器日志

文章目录

  • 一,简要概述
  • 二,操作步骤
    • [1, 编排文件](#1, 编排文件)
    • [2, 水平扩容脚本](#2, 水平扩容脚本)
    • [3, 运行效果](#3, 运行效果)
    • [4, 查看多个容器日志](#4, 查看多个容器日志)

一,简要概述

docker本身并不提供查看多个容器日志的方法,但是我们却可以利用docker scale 命令,对服务作水平扩容,这样多个服务使用的是同一的服务名。从而借助docker-compose logs 命令来查看这批服务的日志。

二,操作步骤

在安装了dockerdocker-compose的lunix服务器上,创建编排文件和扩容脚本。

1, 编排文件

docker-compose.yml

yaml 复制代码
services:
  database-lock:
    image: registry.cn-shanghai.aliyuncs.com/00fly/database-lock:1.0.0
    deploy:
      resources:
        limits:
          cpus: '2.0'
          memory: 200M
        reservations:
          cpus: '2.0'
          memory: 200M
    environment:
      SPRING_PROFILES_ACTIVE: prod
      SPRING_DATASOURCE_URL: jdbc:h2:tcp://h2-server/mem:test;database_to_upper=false
      SPRING_DATASOURCE_DRIVERCLASSNAME: org.h2.Driver
      SPRING_DATASOURCE_USERNAME: sa
      SPRING_DATASOURCE_PASSWORD: 
    restart: on-failure
    logging:
      driver: json-file
      options:
        max-size: 5m
        max-file: '1'
  h2-server:
    image: registry.cn-shanghai.aliyuncs.com/00fly/h2:1.4.200
    deploy:
      resources:
        limits:
          cpus: '2.0'
          memory: 64M
        reservations:
          cpus: '2.0'
          memory: 64M
    restart: on-failure
    logging:
      driver: json-file
      options:
        max-size: 5m
        max-file: '1'

2, 水平扩容脚本

scale-lock.sh

bash 复制代码
#!/bin/bash
docker-compose --compatibility up -d --scale database-lock=3

3, 运行效果

执行以下脚本,启动服务

bash 复制代码
sh scale-lock.sh

docker ps

输出如下

bash 复制代码
 
[root@00fly scale]# sh scale-lock.sh 
[+] Running 5/5
 ✔ Network scale_default            Created                                                                                                                                                                   0.2s 
 ✔ Container scale_database-lock_3  Started                                                                                                                                                                   2.1s 
 ✔ Container scale_h2-server_1      Started                                                                                                                                                                   0.7s 
 ✔ Container scale_database-lock_1  Started                                                                                                                                                                   1.4s 
 ✔ Container scale_database-lock_2  Started                                                                                                                                                                   0.8s 
[root@00fly scale]# docker ps 
CONTAINER ID   IMAGE                                                         COMMAND                   CREATED          STATUS          PORTS     NAMES
8b4dd9e1f3d3   registry.cn-shanghai.aliyuncs.com/00fly/database-lock:1.0.0   "java -Djava.securit..."   13 seconds ago   Up 12 seconds             scale_database-lock_2
9459a57b39e2   registry.cn-shanghai.aliyuncs.com/00fly/h2:1.4.200            "java -Djava.securit..."   13 seconds ago   Up 12 seconds             scale_h2-server_1
02f443bd0785   registry.cn-shanghai.aliyuncs.com/00fly/database-lock:1.0.0   "java -Djava.securit..."   13 seconds ago   Up 11 seconds             scale_database-lock_1
6e156442843a   registry.cn-shanghai.aliyuncs.com/00fly/database-lock:1.0.0   "java -Djava.securit..."   13 seconds ago   Up 10 seconds             scale_database-lock_3

4, 查看多个容器日志

docker compose logs -f <服务名>

bash 复制代码
docker compose logs -f database-lock

输出如下

bash 复制代码
scale_database-lock_1  | 2026-07-03 15:32:47.332 INFO [main] c.f.BootApplication         : Starting BootApplication v1.0.0 on 02f443bd0785 with PID 1 (/app.jar started by root in /)
scale_database-lock_1  | 2026-07-03 15:32:47.340 INFO [main] c.f.BootApplication         : The following profiles are active: prod
scale_database-lock_1  | 2026-07-03 15:32:50.437 INFO [main] c.f.s.l.DataBaseLock        : init...
scale_database-lock_1  | 2026-07-03 15:32:50.609 INFO [main] c.f.c.u.SpringContextUtils  : ###### execute setApplicationContext ######
scale_database-lock_1  | 2026-07-03 15:32:50.902 INFO [main] c.f.BootApplication         : Started BootApplication in 4.794 seconds (JVM running for 8.648)
scale_database-lock_1  | 2026-07-03 15:32:50.907 INFO [main] c.f.BootApplication         : ##### JDBC URL: jdbc:h2:tcp://h2-server/mem:test;database_to_upper=false
scale_database-lock_1  | 2026-07-03 15:32:50.907 INFO [main] c.f.BootApplication         : ##### JDBC Driver: org.h2.Driver
scale_database-lock_1  | 2026-07-03 15:33:00.104 INFO [schedule-pool-1] c.f.s.j.ScheduleJob         : [MUO] 没抢到,骂骂咧咧的走了......
scale_database-lock_1  | 2026-07-03 15:33:05.123 INFO [pool-3-thread-1] c.f.s.a.RefreshAspect       : ##### version: 1
scale_database-lock_1  | 2026-07-03 15:33:30.007 INFO [schedule-pool-1] c.f.s.j.ScheduleJob         : [MUO] 没抢到,骂骂咧咧的走了......
scale_database-lock_1  | 2026-07-03 15:33:35.009 INFO [pool-3-thread-2] c.f.s.a.RefreshAspect       : ##### version: 2
scale_database-lock_1  | 2026-07-03 15:34:00.008 INFO [schedule-pool-2] c.f.s.j.ScheduleJob         : [MUO] 没抢到,骂骂咧咧的走了......
scale_database-lock_1  | 2026-07-03 15:34:05.010 INFO [pool-3-thread-1] c.f.s.a.RefreshAspect       : ##### version: 3
scale_database-lock_1  | 2026-07-03 15:34:30.009 INFO [schedule-pool-1] c.f.s.j.ScheduleJob         : [MUO] 没抢到,骂骂咧咧的走了......
scale_database-lock_1  | 2026-07-03 15:34:35.017 INFO [pool-3-thread-2] c.f.s.a.RefreshAspect       : ##### version: 4
scale_database-lock_3  | 2026-07-03 15:32:51.720 INFO [main] c.f.BootApplication         : Started BootApplication in 4.663 seconds (JVM running for 8.687)
scale_database-lock_3  | 2026-07-03 15:32:51.725 INFO [main] c.f.BootApplication         : ##### JDBC URL: jdbc:h2:tcp://h2-server/mem:test;database_to_upper=false
scale_database-lock_3  | 2026-07-03 15:32:51.726 INFO [main] c.f.BootApplication         : ##### JDBC Driver: org.h2.Driver
scale_database-lock_3  | 2026-07-03 15:33:00.142 INFO [schedule-pool-1] c.f.s.j.ScheduleJob         : [ykc] 没抢到,骂骂咧咧的走了......
scale_database-lock_3  | 2026-07-03 15:33:05.157 INFO [pool-3-thread-1] c.f.s.a.RefreshAspect       : ##### version: 1
scale_database-lock_3  | 2026-07-03 15:33:30.007 INFO [schedule-pool-1] c.f.s.j.ScheduleJob         : [ykc] 没抢到,骂骂咧咧的走了......
scale_database-lock_3  | 2026-07-03 15:33:35.009 INFO [pool-3-thread-1] c.f.s.a.RefreshAspect       : ##### version: 2
scale_database-lock_3  | 2026-07-03 15:34:00.006 INFO [schedule-pool-1] c.f.s.j.ScheduleJob         : [ykc] #### hello world ***********
scale_database-lock_3  | 2026-07-03 15:34:05.010 INFO [pool-3-thread-2] c.f.s.a.RefreshAspect       : ##### version: 3
scale_database-lock_3  | 2026-07-03 15:34:30.006 INFO [schedule-pool-1] c.f.s.j.ScheduleJob         : [ykc] #### hello world ***********
scale_database-lock_3  | 2026-07-03 15:34:35.015 INFO [pool-3-thread-1] c.f.s.a.RefreshAspect       : ##### version: 4
scale_database-lock_3  | 2026-07-03 15:35:00.011 INFO [schedule-pool-2] c.f.s.j.ScheduleJob         : [ykc] 没抢到,骂骂咧咧的走了......
scale_database-lock_2  | 2026-07-03 15:35:00.008 INFO [schedule-pool-1] c.f.s.j.ScheduleJob         : [riF] 没抢到,骂骂咧咧的走了......
scale_database-lock_1  | 2026-07-03 15:35:00.007 INFO [schedule-pool-3] c.f.s.j.ScheduleJob         : [MUO] #### hello world ***********
scale_database-lock_2  | 2026-07-03 15:35:05.011 INFO [pool-3-thread-1] c.f.s.a.RefreshAspect       : ##### version: 5
scale_database-lock_3  | 2026-07-03 15:35:05.014 INFO [pool-3-thread-2] c.f.s.a.RefreshAspect       : ##### version: 5
scale_database-lock_1  | 2026-07-03 15:35:05.019 INFO [pool-3-thread-1] c.f.s.a.RefreshAspect       : ##### version: 5
scale_database-lock_2  | 2026-07-03 15:35:30.003 INFO [schedule-pool-2] c.f.s.j.ScheduleJob         : [riF] #### hello world ***********
scale_database-lock_3  | 2026-07-03 15:35:30.005 INFO [schedule-pool-3] c.f.s.j.ScheduleJob         : [ykc] 没抢到,骂骂咧咧的走了......
scale_database-lock_1  | 2026-07-03 15:35:30.005 INFO [schedule-pool-2] c.f.s.j.ScheduleJob         : [MUO] 没抢到,骂骂咧咧的走了......
scale_database-lock_2  | 2026-07-03 15:35:35.006 INFO [pool-3-thread-2] c.f.s.a.RefreshAspect       : ##### version: 6
scale_database-lock_3  | 2026-07-03 15:35:35.018 INFO [pool-3-thread-1] c.f.s.a.RefreshAspect       : ##### version: 6
scale_database-lock_1  | 2026-07-03 15:35:35.014 INFO [pool-3-thread-2] c.f.s.a.RefreshAspect       : ##### version: 6
scale_database-lock_3  | 2026-07-03 15:36:00.015 INFO [schedule-pool-3] c.f.s.j.ScheduleJob         : [ykc] #### hello world ***********
scale_database-lock_1  | 2026-07-03 15:36:00.020 INFO [schedule-pool-2] c.f.s.j.ScheduleJob         : [MUO] 没抢到,骂骂咧咧的走了......
scale_database-lock_2  | 2026-07-03 15:36:00.014 INFO [schedule-pool-2] c.f.s.j.ScheduleJob         : [riF] 没抢到,骂骂咧咧的走了......
scale_database-lock_3  | 2026-07-03 15:36:05.020 INFO [pool-3-thread-2] c.f.s.a.RefreshAspect       : ##### version: 7
scale_database-lock_2  | 2026-07-03 15:36:05.020 INFO [pool-3-thread-1] c.f.s.a.RefreshAspect       : ##### version: 7
scale_database-lock_1  | 2026-07-03 15:36:05.031 INFO [pool-3-thread-1] c.f.s.a.RefreshAspect       : ##### version: 7

大功告成!!!


有任何问题和建议,都可以向我提问讨论,大家一起进步,谢谢!

-over-

相关推荐
2601_9605679614 小时前
电商套图自动化效率的工程量化分析——从逐张生成到批量套图的架构演进
运维·架构·自动化
吳所畏惧15 小时前
宝塔面板Redis密码修改指南:SSH命令修改 vs 面板UI界面修改,哪个更靠谱?
运维·服务器·数据库·redis·缓存·ssh
张忠琳15 小时前
【NVIDIA】 NVIDIA Container Toolkit v1.19.1 — OCI 模块超深度分析之三
云原生·容器·架构·kubernetes·nvidia
HiDev_16 小时前
【非标自动化】2、认识元器件(确定目标)
运维·自动化
Zhang~Ling16 小时前
从 fopen 到 struct file:从零开始拆解 Linux 文件 I/O
linux·运维·服务器
爱写代码的森17 小时前
蒙三方库 | harmony-utils之FileUtil文件重命名与属性查询详解
linux·运维·服务器·华为·harmonyos·鸿蒙·huawei
Elastic 中国社区官方博客17 小时前
将你的 Grafana Kubernetes 仪表板迁移到 Elastic Observability:相同的 PromQL,30 倍更快的查询
大数据·人工智能·elasticsearch·搜索引擎·容器·kubernetes·grafana
中微极客17 小时前
2026主流AI Agent框架技术选型与性能对比
运维·网络·人工智能
久曲健的测试窝17 小时前
智能座舱自动化测试落地方案:数字仿真搭配实车实测,解决用例运维与场景失真难题
运维
AOwhisky18 小时前
Python 学习笔记(第十五期)——运维自动化(下·后篇):堡垒机实战——paramiko高阶篇
运维·python·学习·云原生·自动化·运维开发