Linux 版本: ubuntu-22.04.4-desktop-amd64.iso
运行在 VMware
Dockerfile:
因无法访问http://192.168.110.131:81/, 所以我想看看日志,但情况却是 没有输出而且还卡在那里了:
问题1: 我的Dockerfile有问题吗?
问题2: 输出日志的异常可能是什么原因? (cat 命令是正常的别的文件可以输出)
如何修改呢?
Linux 版本: ubuntu-22.04.4-desktop-amd64.iso
运行在 VMware
Dockerfile:
因无法访问http://192.168.110.131:81/, 所以我想看看日志,但情况却是 没有输出而且还卡在那里了:
问题1: 我的Dockerfile有问题吗?
问题2: 输出日志的异常可能是什么原因? (cat 命令是正常的别的文件可以输出)
如何修改呢?
首先,我需要你提供Dockerfile的文本内容,而不是图片。因为图片中的Dockerfile内容无法被解析和评估。但是,我可以基于你提供的信息给出一些可能的答案和建议。
问题1:我的Dockerfile有问题吗?
由于你没有提供Dockerfile的具体内容,我无法确定它是否有问题。但是,我可以提供一些常见的Dockerfile编写问题和检查点:
问题2:输出日志的异常可能是什么原因?(cat 命令是正常的别的文件可以输出)
这个问题可能有多种原因。以下是一些可能的原因和解决方案:
ls
命令来查看容器内的文件列表,确保文件确实存在。ls -l
命令来查看文件的权限,并使用chmod
命令来修改权限。修改建议:
docker exec
命令进入容器,并使用ls
和cat
命令检查文件路径和权限。例如,你可以使用以下命令进入容器并检查文件:
docker exec -it <container_id> bash
ls -l /path/to/nginx/logs
cat /path/to/nginx/logs/access.log
请替换<container_id>
为你的容器的实际ID,并替换/path/to/nginx/logs
为Nginx日志文件的实际路径。
如果你提供更多的信息和上下文,我将能够更准确地帮助你解决问题。
2 回答2.7k 阅读✓ 已解决
2 回答867 阅读
3 回答1.3k 阅读
1 回答674 阅读✓ 已解决
3 回答570 阅读✓ 已解决
1 回答1.3k 阅读
1 回答779 阅读✓ 已解决
问题1:
看了一眼这个docker写得意义不明,看上去第一个
FROM ubuntu
好像没什么作用。问题2:
如果你需要进入nginx这个容器里面,应该执行这个:
docker exec -it <container_name> sh
不输出日志,还有一个得看你的配置文件nginx.conf,是把日志写在哪里了,有没有设置buffer。现在这个看不出来具体原因。
我本地测试了一下,发现是这样的:


因为/var/log/nginx/access.log和error这两个文件是链接到了 /dev/stdout,也就是日志文件写到标准输出里了。stdout是一个管道文件描述符,看不到历史的信息。所以用cat看不到内容。
所以你可能得这样看
tail -f /var/log/nginx/access.log
或者
docker logs -f <container_name>
或者在配置文件里面改一下日志的输出位置,不要用这个目录。。