我根据以下内容构建了一个图像ubuntu:16.04
。在构建图像时,我确实运行了一些命令,包括apt-get -y update
.
然后,我浏览图像docker run -it myimage bash
我发现有一些遗漏的文件logrotate
在那里与正常情况相比ubuntu16.04
OS.
例如,/etc/logrotate.conf
, /usr/sbin/logrotate
, /var/lib/logrotate/status
.
即使跑步我也找不到他们find / -name logrotate*
. the find
仅显示命令/etc/logrotate.d
(/etc/cron.daily
, /etc/cron.weekly
也存在)。
看到类似 logrotate 的痕迹logrotate.d
,我认为 logrotate 必须存在于其中。
但是,为什么它不仅没有这些文件,而且还没有可执行文件呢?
我想要它们,因为我想尝试它(我如何监控 logrotate 正在做什么) https://serverfault.com/questions/189320/how-can-i-monitor-what-logrotate-is-doing
我怎样才能用 ubuntu16:04 图像来实现它?
每个容器应该只有一个关注点 https://docs.docker.com/engine/userguide/eng-image/dockerfile_best-practices/#each-container-should-have-only-one-concern(即:没有服务,没有守护进程,没有附加工具)。考虑到这一点,省略 logrotate 配置文件是有意义的,因为logrotate 守护进程不存在.
管理容器上日志的替代方案可以使用共享卷(然后 logrotate 可以在主机上运行)(一个例子 https://www.digitalocean.com/community/tutorials/how-to-work-with-docker-data-volumes-on-ubuntu-14-04) 或委托给docker 日志记录驱动程序 https://docs.docker.com/engine/admin/logging/overview/.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)