You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在Docker项目中添加MongoDB时遇GPG密钥及安装错误求助

问题原因分析与解决方案

逐个错误的根因

  1. 初始GPG密钥链接无效
    你用的密钥链接末尾多了斜杠(https://www.mongodb.org/static/pgp/server-6.0.asc/),正确地址应为https://www.mongodb.org/static/pgp/server-6.0.asc。另外直接通过apt-add-repository添加密钥链接的方式本身错误,需先单独导入密钥再添加源。

  2. wget参数不兼容
    wget -qO的写法缺少输出目标,正确用法是wget -qO - <URL>(-表示将内容输出到标准输出),你大概率漏了后面的-和后续管道导入命令,导致参数解析失败。

  3. 无法定位mongodb-org包
    要么是源未正确添加到apt源列表,要么是密钥导入失败导致apt不信任该源,还有可能是基础镜像Ubuntu版本(如jammy)与源中指定版本(focal)不匹配,导致找不到对应包。

  4. GPG签名验证失败
    密钥未正确导入apt可信密钥环。Ubuntu 20.04+推荐将密钥以二进制格式存储到/usr/share/keyrings/目录,而非已废弃的apt-key add命令,旧方式会导致密钥无法被apt识别验证。


正确的Docker配置示例

以下是适配Ubuntu 20.04(focal)的Dockerfile配置,可解决所有上述问题:

FROM ubuntu:focal

# 安装必要工具
RUN apt-get update && apt-get install -y --no-install-recommends wget gnupg

# 导入MongoDB GPG密钥(新Ubuntu版本标准方式)
RUN wget -qO - https://www.mongodb.org/static/pgp/server-6.0.asc | gpg --dearmor -o /usr/share/keyrings/mongodb-server-6.0.gpg

# 添加MongoDB官方源并关联密钥文件
RUN echo "deb [ arch=amd64,arm64 signed-by=/usr/share/keyrings/mongodb-server-6.0.gpg ] https://repo.mongodb.org/apt/ubuntu focal/mongodb-org/6.0 multiverse" | tee /etc/apt/sources.list.d/mongodb-org-6.0.list

# 安装MongoDB
RUN apt-get update && apt-get install -y --no-install-recommends mongodb-org

# 创建MongoDB数据目录并设置权限
RUN mkdir -p /data/db && chown mongodb:mongodb /data/db

# 启动MongoDB服务
CMD ["mongod"]

关键注意事项

  • 若基础镜像是Ubuntu 22.04(jammy),需将源中的focal替换为jammy
  • --no-install-recommends可减少镜像体积,非必需但推荐使用
  • 需确保密钥文件路径与源配置里的signed-by参数完全一致,否则apt仍会验证失败

内容的提问来源于stack exchange,提问作者Petro Gromovo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.05 08:47:19