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
可以看到相关日志。不过重定向后确实解决了我的问题
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
· 三行代码完成国际化适配,妙~啊~