我正在尝试构建 Raspberry Pi docker 映像,但我总是遇到相同的错误,类似于this、this和this。
在 a (或只是)apt update
中以 root 身份运行命令时,我得到以下输出:arm32v7/ubuntu:20.04
ubuntu:latest
root@273d63597ce6:/# apt update
Get:1 http://ports.ubuntu.com/ubuntu-ports focal InRelease [265 kB]
Get:2 http://ports.ubuntu.com/ubuntu-ports focal-updates InRelease [111 kB]
Get:3 http://ports.ubuntu.com/ubuntu-ports focal-backports InRelease [98.3 kB]
Get:4 http://ports.ubuntu.com/ubuntu-ports focal-security InRelease [107 kB]
Err:1 http://ports.ubuntu.com/ubuntu-ports focal InRelease
At least one invalid signature was encountered.
Err:2 http://ports.ubuntu.com/ubuntu-ports focal-updates InRelease
At least one invalid signature was encountered.
Err:3 http://ports.ubuntu.com/ubuntu-ports focal-backports InRelease
At least one invalid signature was encountered.
Err:4 http://ports.ubuntu.com/ubuntu-ports focal-security InRelease
At least one invalid signature was encountered.
Reading package lists... Done
W: GPG error: http://ports.ubuntu.com/ubuntu-ports focal InRelease: At least one invalid signature was encountered.
E: The repository 'http://ports.ubuntu.com/ubuntu-ports focal InRelease' is not signed.
N: Updating from such a repository can't be done securely, and is therefore disabled by default.
N: See apt-secure(8) manpage for repository creation and user configuration details.
W: GPG error: http://ports.ubuntu.com/ubuntu-ports focal-updates InRelease: At least one invalid signature was encountered.
E: The repository 'http://ports.ubuntu.com/ubuntu-ports focal-updates InRelease' is not signed.
N: Updating from such a repository can't be done securely, and is therefore disabled by default.
N: See apt-secure(8) manpage for repository creation and user configuration details.
W: GPG error: http://ports.ubuntu.com/ubuntu-ports focal-backports InRelease: At least one invalid signature was encountered.
E: The repository 'http://ports.ubuntu.com/ubuntu-ports focal-backports InRelease' is not signed.
N: Updating from such a repository can't be done securely, and is therefore disabled by default.
N: See apt-secure(8) manpage for repository creation and user configuration details.
W: GPG error: http://ports.ubuntu.com/ubuntu-ports focal-security InRelease: At least one invalid signature was encountered.
E: The repository 'http://ports.ubuntu.com/ubuntu-ports focal-security InRelease' is not signed.
N: Updating from such a repository can't be done securely, and is therefore disabled by default.
N: See apt-secure(8) manpage for repository creation and user configuration details.
我已经尝试了清理 apt、清理 docker 和删除/重新创建的建议解决方案,但均未/var/lib/apt/lists
成功。SD 卡为 32G,操作系统为全新安装。df
显示26G免费。
更多信息:
- 这是在树莓派 4 B 上全新安装 2020-05-27-raspios-buster-lite-armhf 时发生的
- 同样的错误发生在另一个运行 HypriotOS 的 Raspberry Pi 4 B 上
- 相同图像中的相同命令在安装了 Arch linux 的树莓派 3 B 上运行良好
ubuntu:18.04
如果我使用旧版本的 ubuntu ( ,16.04
,14.04
) ,则不会发生该错误
问题的根本原因在于 libseccomp。较新的版本解决了这个问题,但它尚未在 Debian 的稳定存储库中可用。有两种方法可以解决此问题:
方法一
使用 启动容器
--privileged
。这绕过了docker的安全措施,所以不推荐。或者--security-opt seccomp:unconfined
更安全一点。docker run -it --security-opt seccomp:unconfined ubuntu:latest
方法二
在主机系统上手动升级 libseccomp。从不稳定的仓库下载版本(我用 2.4.3-1 测试过)here。
安装新版本:
sudo dpkg -i libseccomp2_2.4.3-1+b1_armhf.deb
注意:上述方法解决了基于 Raspbian 系统的问题。该错误也发生在 Ubuntu 20.04 aarch64 系统上,@NeonLines 的回答能够提供帮助。
该错误表明其中一个文件
/var/lib/apt/lists
至少包含一个无效/损坏的签名(可能是apt-key
误用或其他原因的结果)。尝试使用调试消息运行 Apt update:
这应该将您指向损坏的文件,例如
编辑文件,查找并删除损坏的部分,或删除整个文件,以便重新创建它。
TSpark、HyperCreeks 和 ibster1st123s 的答案在 Rasbian 10 和来自官方存储库的最新 docker 版本上对我有用。正如 NeonLines 指出的那样,您必须安装最新版本,因为他们不会遇到这个问题。
tl;博士
使用便捷脚本获取最新的 docker 版本。您应该检查上面的链接,但有一些警告。
升级到 docker 版本 19.03.12 为我解决了这个问题。