运行以下命令以在 Ubuntu 服务器中安装 docker 和 kubernetes 时,我收到以下错误消息。
root@master:/home/ubuntu# add-apt-repository \
> "deb [arch=amd64] https://download.docker.com/linux/ubuntu \
> $(lsb_release -cs) \
> stable"
Hit:1 http://in.archive.ubuntu.com/ubuntu bionic InRelease
Get:2 https://download.docker.com/linux/ubuntu bionic InRelease [64.4 kB]
Hit:3 http://in.archive.ubuntu.com/ubuntu bionic-updates InRelease
Hit:4 http://in.archive.ubuntu.com/ubuntu bionic-backports InRelease
Hit:5 http://in.archive.ubuntu.com/ubuntu bionic-security InRelease
**Err:2 https://download.docker.com/linux/ubuntu bionic InRelease
The following signatures couldn't be verified because the public key is not available: NO_PUBKEY 7EA0A9C3F273FCD8**
Reading package lists... Done
W: GPG error: https://download.docker.com/linux/ubuntu bionic InRelease: The following signatures couldn't be verified because the public key is not available: NO_PUBKEY 7EA0A9C3F273FCD8
**E: The repository 'https://download.docker.com/linux/ubuntu bionic 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.
root@master:/home/ubuntu#
Run Code Online (Sandbox Code Playgroud)
我也运行了下面的命令,但没有运气
root@master:/# sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 7EA0A9C3F273FCD8
Executing: /tmp/apt-key-gpghome.rDOuMCVLF2/gpg.1.sh --keyserver keyserver.ubuntu.com --recv-keys 7EA0A9C3F273FCD8
gpg: keyserver receive failed: No keyserver available
Run Code Online (Sandbox Code Playgroud)
shi*_*ovk 60
首先,添加 Docker\xe2\x80\x99s 官方 GPG 密钥:
\nsudo mkdir -p /etc/apt/keyrings\nsudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor --yes -o /etc/apt/keyrings/docker.gpg\n
Run Code Online (Sandbox Code Playgroud)\n或在其他情况下 (macOS)
\nsudo mkdir -p /usr/share/keyrings\nsudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor --yes -o /usr/share/keyrings/docker-archive-keyring.gpg\n
Run Code Online (Sandbox Code Playgroud)\nPS 对于某些人来说,这部分gpgp --dearmor
很有用。
其次,更新它的权限:
\nsudo chmod a+r /etc/apt/keyrings/docker.gpg\n
Run Code Online (Sandbox Code Playgroud)\n或在其他情况下 (macOS)
\nsudo chmod a+r /usr/share/keyrings/docker-archive-keyring.gpg\n
Run Code Online (Sandbox Code Playgroud)\nInstall Docker Engine on Ubuntu - Official Docker Documentation
\ntuo*_*alo 19
运行此命令以添加正确的密钥:
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
Run Code Online (Sandbox Code Playgroud)
来源:https : //docs.docker.com/install/linux/docker-ce/ubuntu/
Mat*_*ath 17
来自:https: //docs.docker.com/engine/install/ubuntu/ 它适用于 ubuntu 20.04
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
echo \
"deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt-get update
sudo apt-get --assume-yes install docker-ce docker-ce-cli containerd.io
Run Code Online (Sandbox Code Playgroud)
小智 9
Debian 测试(靶心)存在问题:
Warning: apt-key is deprecated. Manage keyring files in trusted.gpg.d instead (see apt-key(8)).
Run Code Online (Sandbox Code Playgroud)
但可以通过以下方式解决:
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
Run Code Online (Sandbox Code Playgroud)
确保 /usr/share/keyrings/docker-archive-keyring.gpg 是全局可读的。
# ls -l /usr/share/keyrings/docker-archive-keyring.gpg
-rw-rw---- 1 root root 2760 Aug 17 06:46 /usr/share/keyrings/docker-archive-keyring.gpg
strace -f apt update 2>&1 | grep docker-archive-keyring
[pid 9453] faccessat(AT_FDCWD, "/usr/share/keyrings/docker-archive-keyring.gpg", R_OK) = -1 EACCES (Permission denied)
# chmod o+r /usr/share/keyrings/docker-archive-keyring.gpg
# strace -f apt update 2>&1 | grep docker-archive-keyring
[pid 9772] faccessat(AT_FDCWD, "/usr/share/keyrings/docker-archive-keyring.gpg", R_OK) = 0
[pid 9795] openat(AT_FDCWD, "/usr/share/keyrings/docker-archive-keyring.gpg", O_RDONLY) = 4
[pid 9795] access("/usr/share/keyrings/docker-archive-keyring.gpg", F_OK) = 0
[pid 9795] access("/usr/share/keyrings/docker-archive-keyring.gpg", R_OK) = 0
[pid 9795] openat(AT_FDCWD, "/usr/share/keyrings/docker-archive-keyring.gpg", O_RDONLY) = 6
[pid 9795] openat(AT_FDCWD, "/usr/share/keyrings/docker-archive-keyring.gpg", O_RDONLY) = 7
[pid 9795] openat(AT_FDCWD, "/usr/share/keyrings/docker-archive-keyring.gpg", O_RDONLY) = 8
Run Code Online (Sandbox Code Playgroud)
这是错误
W: GPG error: https://download.docker.com/linux/ubuntu bionic InRelease: The following signatures couldn't be verified because the public key is not available: NO_PUBKEY 7EA0A9C3F273FCD8
复制后面的密钥NO_PUBKEY
并执行
sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys <the key>
Run Code Online (Sandbox Code Playgroud)
确保替换<the key>
为您复制的密钥
,然后再次运行命令
对于 22.04 我必须做:
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/trusted.gpg.d/docker.gpg
Run Code Online (Sandbox Code Playgroud)
具体来说,将输出转到 /etc/apt/trusted.gpg.d/docker.gpg
我有这个确切的问题。我相信这是由我的默认 umask 引起的,这导致某些 Docker 文件以不正确的权限安装。我能够通过更正 docker 密钥文件的文件权限来修复它:
sudo chmod a+r /usr/share/keyrings/docker-archive-keyring.gpg
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
12284 次 |
最近记录: |