我从未见过这样的情况,我认为这是不可能的设计。 您不应将秘密密钥放在图像中 您可能需要在2个月后重新确认许可证,并需要重建整个映像 一般来说,这是使用 companion letsencrypt docker image 完成的,有时称为 sidekick。您基本上有您的应用程序(及其容器)和一个 letsencrypt 容器,公开一个卷,nginx 然后使用 volume_from 挂载此卷,该卷是 letsencrypt 容器放置获取的证书的位置。这发生在映像启动期间,而不是在映像创建期间。您可以使用 docker-compose 文件配置任何所需内容。例如,您可以在这里查看 a) https://github.com/rancher/community-catalog/blob/master/templates/letsencrypt/2/docker-compose.yml b) 或 http://letsencrypt.readthedocs.io/en/latest/using.html#running-with-docker a) 允许您使用 ENV 变量定义所需的域,这将非常适合 docker-compose 方式,不提供任何文件,如主机上的配置(使其可移植)。您仍然可以将所有这些内容放在 nginx-server 上,但这不是最佳实践,有许多原因(例如需要配置 nginx)。 如果您想坚持“构建时间”,另一种选择是使用 DNS 验证模式,因此您可以使用 DNS 条目而不是通过端口进行验证。以下是一些链接 - https://github.com/lukas2511/letsencrypt.sh/wiki/Examples-for-DNS-01-hooks - a) 容器执行此操作对于这种情况,您可能希望选择http://cloudflare.com - 据我所知,它是唯一具有免费 API 访问无限域名的 DNS 服务,其他任何东西都要花钱或有限制。