使用docker运行了php容器, nginx容器
通常查看日志都是使用docker logs php或nginx
发现默认的这些日志是存储在容器目录中的
如 "/var/lib/docker/containors/php/php.json" "/var/lib/docker/containors/nginx/nginx.json"
有什么办法能让日志统一存储在别的位置,
如"/home/logs" 目录下?
使用docker运行了php容器, nginx容器
通常查看日志都是使用docker logs php或nginx
发现默认的这些日志是存储在容器目录中的
如 "/var/lib/docker/containors/php/php.json" "/var/lib/docker/containors/nginx/nginx.json"
有什么办法能让日志统一存储在别的位置,
如"/home/logs" 目录下?
可以使用Docker的日志驱动程序来实现将Docker容器的日志存储到其他路径。日志驱动程序是Docker配置的一部分,用于控制容器的日志行为。
要更改日志驱动程序并指定日志路径,可以在Docker守护程序的配置文件或运行时命令行中设置以下标志:
在Docker守护程序的配置文件(/etc/docker/daemon.json)中添加以下内容:
{
"log-driver": "json-file",
"log-opts": {
"path": "/home/logs/container.log",
"max-size": "10m",
"max-file": "3"
}
}
这将使用json-file日志驱动程序,并将日志文件存储在"/home/logs/container.log"路径下。max-size
和max-file
选项用于控制日志文件的最大大小和保留的日志文件数量。
保存配置文件后,重新启动Docker守护程序以使更改生效。
在启动Docker守护程序时,可以使用以下命令行选项来设置日志驱动程序和路径:
dockerd --log-driver=json-file --log-opt path=/home/logs/container.log --log-opt max-size=10m --log-opt max-file=3
这将使用json-file日志驱动程序,并将日志文件存储在"/home/logs/container.log"路径下。max-size
和max-file
选项与之前的配置相同。
请注意,更改日志驱动程序和路径可能会影响容器日志的完整性和可管理性。确保在进行更改之前仔细考虑对现有系统和应用程序的影响。
5 回答4.9k 阅读✓ 已解决
1 回答4.2k 阅读✓ 已解决
4 回答2.5k 阅读✓ 已解决
3 回答1.9k 阅读✓ 已解决
2 回答2.3k 阅读✓ 已解决
2 回答2.5k 阅读✓ 已解决
2 回答1.8k 阅读✓ 已解决
docker logs
默认是不往容器内或者宿主机上持久化日志文件的。除非你在你的应用中,将日志分为标准输出和文件持久,那你可以通过挂载的方式,将你的容器内的日志文件持久化到宿主机上。