当前位置: 首页 > 知识库问答 >
问题:

linux - docker / nginx 疑问?

姜泳
2024-04-11

Linux 版本: ubuntu-22.04.4-desktop-amd64.iso
运行在 VMware

Dockerfile:
image.png

因无法访问http://192.168.110.131:81/, 所以我想看看日志,但情况却是 没有输出而且还卡在那里了:
image.png

问题1: 我的Dockerfile有问题吗?
问题2: 输出日志的异常可能是什么原因? (cat 命令是正常的别的文件可以输出)

如何修改呢?

共有2个答案

郁博学
2024-04-11

问题1:

看了一眼这个docker写得意义不明,看上去第一个 FROM ubuntu 好像没什么作用。

问题2:

截图这里 docker run -it --rm -p 81:80 test:1 sh 这里不要加sh,加了sh后,就是在执行sh了,而不是nginx,所以是访问不通的。

然后如果你需要进入nginx这个容器里面,应该执行这个:docker exec -it <container_name> sh

不输出日志,还有一个得看你的配置文件nginx.conf,是把日志写在哪里了,有没有设置buffer。现在这个看不出来具体原因。


我本地测试了一下,发现是这样的:
因为/var/log/nginx/access.log和error这两个文件是链接到了 /dev/stdout,也就是日志文件写到标准输出里了。stdout是一个管道文件描述符,看不到历史的信息。所以用cat看不到内容。
image.png
image.png

所以你可能得这样看
tail -f /var/log/nginx/access.log

或者
docker logs -f <container_name>
或者在配置文件里面改一下日志的输出位置,不要用这个目录。。

慕铭
2024-04-11

首先,我需要你提供Dockerfile的文本内容,而不是图片。因为图片中的Dockerfile内容无法被解析和评估。但是,我可以基于你提供的信息给出一些可能的答案和建议。

问题1:我的Dockerfile有问题吗?

由于你没有提供Dockerfile的具体内容,我无法确定它是否有问题。但是,我可以提供一些常见的Dockerfile编写问题和检查点:

  1. 确保你的基础镜像(FROM指令)是正确的,并且包含了你需要的所有工具和库。
  2. 确保你的Dockerfile中的命令是按照正确的顺序执行的,例如,你应该在复制文件到镜像之前先设置工作目录。
  3. 如果你在Dockerfile中使用了EXPOSE指令,请确保你的容器确实在监听你期望的端口。

问题2:输出日志的异常可能是什么原因?(cat 命令是正常的别的文件可以输出)

这个问题可能有多种原因。以下是一些可能的原因和解决方案:

  1. 文件路径错误:确保你正在尝试查看的日志文件路径是正确的。你可以使用ls命令来查看容器内的文件列表,确保文件确实存在。
  2. 文件权限问题:可能是由于文件权限问题导致你无法查看日志文件。你可以使用ls -l命令来查看文件的权限,并使用chmod命令来修改权限。
  3. 容器中的进程没有写入日志:如果你的Nginx进程没有将日志写入到你期望的文件中,那么你将无法看到任何输出。确保Nginx配置正确,并且正在将日志写入到你期望的位置。

修改建议:

  1. 提供Dockerfile的文本内容,以便我可以更好地帮助你诊断问题。
  2. 使用docker exec命令进入容器,并使用lscat命令检查文件路径和权限。
  3. 检查Nginx的配置文件,确保日志路径和权限设置正确。

例如,你可以使用以下命令进入容器并检查文件:

docker exec -it <container_id> bashls -l /path/to/nginx/logscat /path/to/nginx/logs/access.log

请替换<container_id>为你的容器的实际ID,并替换/path/to/nginx/logs为Nginx日志文件的实际路径。

如果你提供更多的信息和上下文,我将能够更准确地帮助你解决问题。

 类似资料:
  • docker nginx rtmp 一个Dockerfile从源代码安装NGINX,nginx-rtmp-module和FFmpeg HLS实时流媒体的默认设置。 建立在Alpine Linux上。 Nginx 1.15.3 (从源代码编译) nginx-rtmp-module 1.2.1 (从源代码编译) ffmpeg 4.0.2 (从源代码编译) 默认HLS设置(见: nginx.conf)

  • Nginx 是一个高性能的 HTTP 和反向代理 web 服务器,同时也提供了 IMAP/POP3/SMTP 服务 。 1、查看可用的 Nginx 版本 访问 Nginx 镜像库地址: https://hub.docker.com/_/nginx?tab=tags。 可以通过 Sort by 查看其他版本的 Nginx,默认是最新版本 nginx:latest。 你也可以在下拉列表中找到其他你想要

  • Nginx PHP MySQL Docker running Nginx, PHP-FPM, Composer, MySQL and PHPMyAdmin. Overview Install prerequisites Before installing project make sure the following prerequisites have been met. Clone the p

  • Supported tags and respective Dockerfile links python3.9, latest (Dockerfile) python3.8, (Dockerfile) python3.7, (Dockerfile) python3.6 (Dockerfile) Discouraged tags python3.8-alpine (Dockerfile) To l

  • docker-nginx-auto-ssl The simpliest solution to add SSL cert to your site Docker image for automatic generation of SSL certs using Let's encrypt and Open Resty, with reasonable SSL settings, HTTP/2 an

  • 我使用filebeat作为docker,当ıpoint我的nginx登录filebeat时。ymlım在kibana看不到nginx日志这是我的filebeat。yml。我准备好了elastichsearch和kibana容器。当我在日志中启动filebeat容器时,它表示已配置给定的日志路径。但ı无法在kibana上看到任何nginx日志 以及我的nginx站点配置的一个例子