• Docker自定义镜像无容器日志输出


    Docker自定义镜像无容器日志输出

    因工作环境需要,需自己定制一个python环境的镜像,但制作完之后,docker logs发现无日志输出,经文档查询原来需要将日志重定向到标准输入与标准输出,例子如下:

    例子一

    FROM env_centos:latest
     
    COPY nginx.repo /etc/yum.repos.d/ 
    # 注意,日志要重定向输出到stdout,否则无法看到容器日志输出
    RUN 
        yum -y install nginx httpd-tools && 
        mkdir -p /data/nginx_conf/upstream && 
        mkdir -p /data/nginx_conf/vhosts && 
        rm -f /etc/nginx/conf.d/default.conf && 
        ln -sf /dev/stdout /var/log/nginx/access.log &&        		> 这2行是关键,当然,这个要跟你的nginx配置文件匹配,不要照搬
        ln -sf /dev/stderr /var/log/nginx/error.log                   > 这2行是关键
     
    COPY nginx.conf /etc/nginx/nginx.conf
     
    EXPOSE 80
    #EXPOSE 443
     
    CMD ["nginx", "-g", "daemon off;"]
    

    例子二

    FROM ubuntu:latest
    
    RUN apt-get update && apt-get upgrade -y && apt-get install -y build-essential python3 python3-dev python3-pip libssl-dev git
    WORKDIR /home/elastalert
    ADD  ./*   ./
    RUN pip install -i https://pypi.tuna.tsinghua.edu.cn/simple  elastalert &&  
    ln -sf /dev/stdout elastalert.log  && ln -sf /dev/stderr elastalert.log
    CMD ["/bin/bash","run.sh"]
    

    注意: 这里有一个疑问,为啥我例子一容器启动后在/dev/目录中可以看到文件映射,但例子二没有看到,但docker logs可以看到相关日志。不过重定向后确实解决了我的问题

  • 相关阅读:
    java中的Set的使用以及各种遍历方法(较为全面)
    系统图标
    监听按钮
    GUI
    【Avalon】获取隐藏元素的尺寸
    Hooks
    特性节点Attribute
    ngCloak
    邮件
    时间
  • 原文地址:https://www.cnblogs.com/98record/p/docker-zi-ding-yi-jing-xiang-wu-rong-qi-ri-zhi-shu.html
Copyright © 2020-2023  润新知