jmr*_*cha 8 logging tail strace docker coreos
我看到tail -f在 CoreOS 的 Docker 容器内运行命令时出现了一些奇怪的行为。
我能想到的许多变量可能会导致问题,但我不确定首先需要做什么来排除故障。在 CoreOS 上,我正在运行支持 overlayfs 的最新版本,以及较新版本的 Docker (1.4.1)。
有趣的是,我能够在运行不同版本 Docker (1.3) 的不同主机操作系统 (Ubuntu 14.04) 上成功跟踪日志。
如果这有助于排除故障,我可以生成 strace 日志,它们似乎在主机之间存在显着差异。例如,在不工作的主机上,在 strace 输出中读入以下内容后,strace 停止:
04:03:03 inotify_add_watch(4, "f017f0a1-a1e9-11e4-90bc-027e0f87cac6-paster.log", IN_MODIFY|IN_ATTRIB|IN_DELETE_SELF|IN_MOVE_SELF) = 1 <0.000028>
04:03:03 fstat(3, {st_mode=S_IFREG|0644, st_size=12229, ...}) = 0 <0.000022>
04:03:03 read(4, 0x7711f0, 64) = ? ERESTARTSYS (To be restarted if SA_RESTART is set) <3.101545>
Run Code Online (Sandbox Code Playgroud)
我只是对 strace 不够熟悉,无法很好地解释结果。
小智 4
不是解决方案,而是解决方法:
我在 CoreOS 607.0.0 上遇到了同样的问题,并在基于 Ubuntu 或 Fedora 的容器中重现了这个问题。然而使用busybox的容器不存在这个问题。两种解决方法:
1)使用基于busybox的容器镜像,例如alpine
2) 在现有容器中安装 busybox 并运行
busybox tail -F <logfile>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6288 次 |
| 最近记录: |