Vil*_*oja 13 docker dockerfile docker-image
在docker世界中,可以很容易地看到docker容器的日志(即运行图像).但在图像创建过程中,通常会发出多个命令.例如,节点项目中的npm install命令.查看这些命令的日志也是有益的.我很快从文档中搜索过,但没有找到如何获取docker图像的日志.可能吗?
die*_*l02 52
有同样的问题,我解决了它使用
docker build --no-cache --progress=plain -t my-image .
Run Code Online (Sandbox Code Playgroud)
BMi*_*tch 14
最简单的方法是使用tee将所有命令输出的副本发送到日志文件.如果要将它附加到图像,请将运行命令输出到图像内部的日志文件,例如:
RUN my-install-cmd | tee /logs/my-install-cmd.log
Run Code Online (Sandbox Code Playgroud)
然后,您可以运行快速的一次性容器来查看日志的内容:
docker run --rm my-image cat /logs/my-install-cmd.log
Run Code Online (Sandbox Code Playgroud)
如果您不需要附加到映像的日志,则只需对构建命令进行一次更改即可记录每个构建的输出(而不是对运行命令进行大量更改),正如JHarris所说:
docker build -t my-image . | tee my-image.build.log
Run Code Online (Sandbox Code Playgroud)
如果您在不使用的情况下构建--rm=true,那么您将拥有所有中间容器,并且每个容器都有一个您可以查看的日志
docker logs $container_id
Run Code Online (Sandbox Code Playgroud)
最后,不要忘记图像中的图层历史.它们不显示每个命令的输出,但它对于所有那些不记录任何输出并且知道每个层来自哪个构建的命令非常有用,特别是在使用大量缓存时.
docker history my-image
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
27658 次 |
| 最近记录: |