在使用Docker运行应用程序时,我们需要知道的一个重要事情是如何查看容器日志。这些日志对于检查应用程序是否正常运行、是否存在错误或容器内的服务是否成功激活非常有用。
在本例中,我们不使用特定的容器名称。因此请使用通用格式,例如:
容器名称
或者,如果你希望更容易理解,假设你的容器名称是:
项目名称
然后将 项目名称 替换为你自己的Docker容器名称。
要检查正在运行的容器名称,请使用:
docker ps
查看 NAMES 部分。这就是你可以在Docker日志命令中使用的容器名称。
1. 查看容器日志
要查看容器的日志,请使用命令:
docker logs 项目名称
将 项目名称 替换为你的容器名称。
通用格式示例:
docker logs 容器名称
该命令将显示该容器中已记录的日志。这些日志通常包含诸如应用程序启动过程、错误、警告或服务器已激活的消息等信息。
2. 实时查看日志
如果你想实时或持续查看日志,请添加 -f 选项。
docker logs -f 项目名称
-f 选项表示 跟随。因此终端将持续显示最新日志,只要容器仍在运行。
这在调试时非常有用。例如,在重启容器、更新应用程序或想要查看网站被访问时是否有新错误时。
要退出实时日志模式,请按:
CTRL + C
这只会停止终端中的日志显示,而不会停止容器。
3. 仅查看最新日志
有时容器日志过长,尤其是应用程序已运行很长时间。如果你只想查看最后几行,请使用 --tail。
docker logs --tail=100 项目名称
上述命令将显示容器日志的最后100行。
如果要查看最后50行:
docker logs --tail=50 项目名称
如果你想查看最后日志的同时继续跟踪新日志,可以同时使用 --tail 和 -f。
docker logs --tail=100 -f 项目名称
使用此命令,Docker将显示最后100行,然后继续实时显示新日志。
4. 按时间查看日志
Docker还可以根据特定时间显示日志。例如,你只想查看过去10分钟的日志:
docker logs --since=10m 项目名称
或者过去1小时:
docker logs --since=1h 项目名称
如果要查看直到某个时间的日志,可以使用:
docker logs --until=10m 项目名称
此功能在你希望专注于查找刚刚发生的错误而不必从头阅读日志时非常有用。
5. 进入容器
除了从外部查看日志,有时你还需要进入容器以检查文件、文件夹或执行特定命令。
使用命令:
docker exec -it 项目名称 sh
通常,基于Linux的轻量容器使用 sh。
如果你的Docker镜像支持 bash,你也可以使用:
docker exec -it 项目名称 bash
进入容器后,你可以使用以下命令检查当前文件夹位置:
pwd
然后查看文件和文件夹列表:
ls
如果要查看更详细的信息:
ls -la
6. 从容器内部检查应用程序
进入容器后,你可以通过尝试访问应用程序使用的端口的localhost来检查应用程序是否正在运行。
通用格式如下:
wget -qO- http://localhost:PORT
将 PORT 替换为容器内应用程序使用的内部端口。
示例:
wget -qO- http://localhost:8080
或者,如果容器内可用 curl,则可以使用:
curl http://localhost:PORT
示例:
curl http://localhost:8080
如果应用程序正常运行,通常会显示来自应用程序的HTML、JSON或特定文本等响应。
7. 从VPS或主机检查应用程序
除了从容器内部,你还可以直接从VPS或服务器主机检查应用程序。
通用格式:
curl http://localhost:PORT
将 PORT 替换为VPS上打开的端口或Docker端口映射。
示例:
curl http://localhost:8080
如果使用Docker,请确保容器端口已映射到主机端口。你可以使用以下命令检查:
docker ps
然后会看到 PORTS 部分,例如:
0.0.0.0:8080->8080/tcp
这意味着VPS上的端口 8080 被定向到容器内的端口 8080。
8. 检查容器名称
如果你不确定容器名称,请运行:
docker ps
此命令将显示正在运行的容器列表。
如果要查看所有容器,包括已停止的:
docker ps -a
然后你可以查看 NAMES 部分,并使用该名称进行 docker logs 命令。
示例:
docker logs 容器名称
9. 简单调试流程示例
通常,当Docker应用程序出现问题时,你可以先检查容器。
首先,检查容器是否仍在运行:
docker ps
然后查看最新日志:
docker logs --tail=100 项目名称
如果要实时监控:
docker logs -f 项目名称
如果需要进入容器:
docker exec -it 项目名称 sh
之后检查应用程序文件夹:
pwd
ls -la
然后检查应用程序是否在内部端口响应:
wget -qO- http://localhost:PORT
或者:
curl http://localhost:PORT
结论
要查看Docker容器日志,最常用的基本命令是:
docker logs 项目名称
如果要实时查看日志:
docker logs -f 项目名称
如果只想查看日志的末尾部分:
docker logs --tail=100 项目名称
如果需要进入容器:
docker exec -it 项目名称 sh
通过这几个简单命令,你可以检查Docker中应用程序的状态、查找错误、查看正在运行的进程,并确保容器内的服务正常运行。
作者
Wilan
巴厘岛Tekno的常驻撰稿人,积极分享技术、编程和软件工程领域的知识。