Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/411.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
删除在/var/lib/docker/containers/HASH处生成的docker日志安全吗_Docker_Boot2docker - Fatal编程技术网

删除在/var/lib/docker/containers/HASH处生成的docker日志安全吗

删除在/var/lib/docker/containers/HASH处生成的docker日志安全吗,docker,boot2docker,Docker,Boot2docker,日志现在是13GB,我不知道删除日志是否安全,以及如何使日志变小 root@faith:/var/lib/docker/containers/f1ac17e833be2e5d1586d34c51324178bd18f969d 1046cbb59f10eaa4bcf84be# ls -alh total 13G drwx------ 2 root root 4.0K Mar 6 08:35 . drwx------ 3 root root 4.0K Feb 24 11:00 .. -rw-r--

日志现在是13GB,我不知道删除日志是否安全,以及如何使日志变小

root@faith:/var/lib/docker/containers/f1ac17e833be2e5d1586d34c51324178bd18f969d
1046cbb59f10eaa4bcf84be# ls -alh
total 13G
drwx------ 2 root root 4.0K Mar  6 08:35 .
drwx------ 3 root root 4.0K Feb 24 11:00 ..
-rw-r--r-- 1 root root 2.1K Feb 24 10:15 config.json
-rw------- 1 root root  13G Feb 25 00:27 f1ac17e833be2e5d1586d34c51324178bd18f96
9d1046cbb59f10eaa4bcf84be-json.log
-rw-r--r-- 1 root root  611 Feb 24 10:15 hostconfig.json
-rw-r--r-- 1 root root   13 Feb 24 10:15 hostname
-rw-r--r-- 1 root root  175 Feb 24 10:15 hosts
-rw-r--r-- 1 root root   61 Feb 24 10:15 resolv.conf
-rw-r--r-- 1 root root   71 Feb 24 10:15 resolv.conf.hash

当您删除容器时,应该清理这些内容。(因此,删除它们是不合适的,因为Docker相信它可以控制
/var/lib/Docker

祝贺你,你发现了Docker的一个尚未解决的大问题

如前所述,Docker假设自己拥有
/var/lib/Docker
项下的全部所有权,因此试图从Docker背后删除文件可能不起作用

然而,基于中和中的组件,人们似乎成功地使用了
logrotate
copyruncate
指令来旋转docker日志。这两个链接都值得一读,因为它们包含了关于Docker日志的陷阱和一些潜在解决方案的长期讨论

理想情况下,Docker本身对日志管理有更好的本机支持。在此之前,以下是一些可供考虑的备选方案:

如果控制应用程序的源代码,则可以将所有内容配置为登录到syslog,而不是stdout/stderr。然后,您可以使用多种解决方案,从在容器内运行syslog服务到在容器内公开主机的
/dev/log


另一个选项是在容器中运行
systemd
,并使用它启动服务。systemd将从您的服务中收集stdout/stderr并将其提供给journald,journald将负责日志轮换之类的事情(并为您提供一个查询日志的相当灵活的机制)。

由于日志对我来说并不重要,我只需创建一个指向日志文件的符号链接/dev/null,目前,它工作正常。