Docker attach 问题 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Dffcc
V2EX    Docker

Docker attach 问题

  •  
  •   ffcc 2024-03-09 20:32:05 +08:00 1189 次点击
    这是一个创建于 580 天前的主题,其中的信息可能已经有所发展或是发生改变。

    前提:

    Docker run --name mytom -p 8081:8080 -it tomcat:8.5.49

    Docker attach tomcat

    提问 1:

    似乎只有起停进程(例如按 ctrl+c 或是 docker start mytom)才会有日,为何点击 Tomcat 所服务的网站,却没有 logs 透过 Docker attach tomcat 输出呢?

    问了 Chatgpt4.0 后,依然给我奇怪的答案:

    对于默认的 catalina.sh run ,Tomcat 通常会将日志写入到 logs/catalina.out 文件中,而不是输出到标准输出( STDOUT )。这意味着,即使你使用 docker attach 或 docker logs ,也看不到那些保存在 logs/catalina.out 文件中的日志内容。 如果你希望让 Tomcat 把日志输出到 STDOUT (从而让你通过 docker attach 或 docker logs 查看),你需要修改 Tomcat 的日志配置。

    提问 2:

    但事实就是起停进程会被 attach 输出,而 Docker attach 会记录标准输出( STDOUT ),哪里有错呢?

    9 条回复    2024-03-13 09:46:48 +08:00
    LemonPrefect
        1
    LemonPrefect  
       2024-03-10 10:32:50 +08:00
    catalina 有多种日志,在 stdout 中看到的是 catalina 的启停日志,而不是 Tomcat 的访问日志。对于 Tomcat 访问日志来说,其默认配置如下,输出到文件中。

    ![]( https://img.erpweb.eu.org/imgs/2024/03/58da92e98313b2a8.png)

    catalina 启动的日志是由启动脚本决定输出到 STDOUT 中的,与 Tomcat 的访问日志无关。如果你希望将访问日志输出到 STDOUT 中,可以修改 server.xml 来实现。
    Dffcc
        2
    Dffcc  
    OP
       2024-03-11 01:13:40 +08:00
    @LemonPrefect

    问题是如何从 Tomcat 的 Dockerfile 中,找到 STAOUT 相关文件,你怎么知道要输入图片上的指令呢?

    cd/comf
    ls
    grep server.xml
    cat server.xml|grep

    https://github.com/docker-library/tomcat/blob/2922893bc6ccc52af5b663972b5918ce5fb9a841/8.5/jdk21/corretto-al2/Dockerfile
    @LemonPrefect
    LemonPrefect
        3
    LemonPrefect  
       2024-03-11 10:21:38 +08:00 via Android
    @Dffcc 这与 Docker 无关但与 Tomcat 有关。server.xml 是 Tomcat 提供的配置文件。

    请参阅: https://tomcat.apache.org/tomcat-8.5-doc/config/context.html#Introduction
    LemonPrefect
        4
    LemonPrefect  
       2024-03-11 10:24:08 +08:00 via Android
    PS. 因此你无法直接在 Dockerfile 中找到此文件,对于 Docker 来说他就是上层服务 src 。
    Dffcc
        5
    Dffcc  
    OP
       2024-03-12 00:52:35 +08:00
    @LemonPrefect

    https://www.bilibili.com/video/BV1qN411K7W3?t=202.0&p=52

    这边讲师有说 Docker logs mytom3 ,没出现内容而离开的原因是因为用 bash 指令,跟这里的 Docker attach tomcat 是是一样的道理,一切都看 CMD 指令?
    LemonPrefect
        6
    LemonPrefect  
       2024-03-12 10:55:22 +08:00 via Android
    @Dffcc logs 输出的内容只取决于 STDOUT ,无论什么进程向 STDOUT 输出了,logs 就显示。这里显示了两遍 bash prompt ,是因为容器已经停止了,而在停止的最后时刻,留下了由原有的 entrypoint 输出的 prompt 。根本原因与是不是使用的 bash 一点关系都没有,如果这里的 entrypoint 换成我写的专门启动 catalina 的二进制程序,那你就会看到他输出的 log 。
    Dffcc
        7
    Dffcc  
    OP
       2024-03-12 11:14:09 +08:00 via iPhone
    @LemonPrefect 不是 entrypoint ,应该是看 CMD 指令,我的意思是 STDOUT 指令也是看 CMD 吗? 还是只能像 Tomcat 从官网看?
    LemonPrefect
        8
    LemonPrefect  
       2024-03-12 18:39:55 +08:00 via Android
    @Dffcc 看 entrypoint ,如果我实现的 entrypoint 是一个从来不向标准输出流输出任何东西的二进制文件,那你将看不见任何输出,无论你使用什么指令。
    Dffcc
        9
    Dffcc  
    OP
       2024-03-13 09:46:48 +08:00 via iPhone
    @LemonPrefect 有点难理解,我需要学习更多相关的知识,谢谢你
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2360 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 23ms UTC 15:47 PVG 23:47 LAX 08:47 JFK 11:47
    Do have faith in what you're doing.
    ubao snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86