![带有随机日期的Docker容器](https://linux22.com/image/758521/%E5%B8%A6%E6%9C%89%E9%9A%8F%E6%9C%BA%E6%97%A5%E6%9C%9F%E7%9A%84Docker%E5%AE%B9%E5%99%A8.png)
我正在运行基于图像的容器linuxserver/radarr:3.0.0.3095-ls12
。
一旦我更新标签/版本,linuxserver/radarr:3.0.0.3807-ls24
应用程序就会停止工作。
经过一番调试后,我注意到date
此图像中的行为很奇怪:
$ docker run --rm --entrypoint "" linuxserver/radarr:3.0.0.3807-ls24 date
Fri 20 Feb 1970 03:17:15 AM UTC
$ docker run --rm --entrypoint "" linuxserver/radarr:3.0.0.3807-ls24 date
Sun 01 Mar 1970 09:09:15 AM UTC
$ docker run --rm --entrypoint "" linuxserver/radarr:3.0.0.3807-ls24 date
Thu 19 Feb 1970 09:04:59 AM UTC
但旧的却不是
$ docker run --rm --entrypoint "" linuxserver/radarr:3.0.0.3095-ls12 date
Sat 10 Oct 2020 12:15:09 AM UTC
经过一段时间的思考,我认为时钟里有某种奇怪的黑魔法,因此决定运行它以--privileged
获得完整/原始访问权限
$ docker run --rm --entrypoint "" --privileged linuxserver/radarr:3.0.0.3807-ls24 date
Sat 10 Oct 2020 12:16:22 AM UTC
而且它运行良好(应用程序也是如此,但对于问题来说并不重要)。
我查看了docker history
这两张图片,但很多COPY
时候,RUN curl
不同的版本可能会有不同的结果。不过,我认为没有人(图片维护者)会想篡改日期,所以这一定是他们无法控制的事情(没有libfaketime
找到)……
这是一个多架构图像,这些结果来自 raspberry Pi(因此是图像的 arm 构建)。在我的 amd64 linux 笔记本电脑中,date
即使没有特权,最新的图像也能报告正确...
这可能是什么?我无法使用该--privileged
标志,我该如何开始调试?
答案1
跟进阿德里安的评论(应该是一个答案):
根据linuxserver 常见问题这是一个已知问题自 2020 年 3 月起使用 docker 和 ubuntu focal 镜像。
它似乎与过时的 libseccomp(除了内核本身之外,Docker 的唯一依赖项)有关,这解释了为什么privileged
容器不受影响(系统调用过滤已禁用)。
他们列出了可能的解决步骤。
就我而言(作为 OP),我使用的是 Buster,因此从 buster-backports 安装最新的 libseccomp 解决了这个问题
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 04EE7237B7D453EC 648ACFD622F3D138
echo "deb http://deb.debian.org/debian buster-backports main" | sudo tee -a /etc/apt/sources.list.d/buster-backports.list
sudo apt update
sudo apt install -t buster-backports libseccomp2