我可以在构建docker映像时绑定端口吗?

我可以在构建docker映像时绑定端口吗?,docker,certbot,Docker,Certbot,我想在从这个容器中构建docker容器时运行certbot自动客户端,因此我需要外部世界可以访问端口443 在构建docker映像时,有没有办法将端口绑定到主机?简单回答,没有 该选项不作为docker构建的一部分,构建不应该挂起等待外部性连接。它们还应该设计为在任何开发人员工作站、外部托管的构建服务器以及两者之间的任何东西上运行 回答得越长,我认为你走错了路。将特定于容器的独特数据注入到图像中会创建一些与docker图像的典型模式背道而驰的内容。与其尝试向映像中注入证书,不如让它作为容器入口点

我想在从这个容器中构建docker容器时运行certbot自动客户端,因此我需要外部世界可以访问端口443

在构建docker映像时,有没有办法将端口绑定到主机?

简单回答,没有

该选项不作为docker构建的一部分,构建不应该挂起等待外部性连接。它们还应该设计为在任何开发人员工作站、外部托管的构建服务器以及两者之间的任何东西上运行


回答得越长,我认为你走错了路。将特定于容器的独特数据注入到图像中会创建一些与docker图像的典型模式背道而驰的内容。与其尝试向映像中注入证书,不如让它作为容器入口点的一部分来执行此操作,如果需要持久性,将结果存储在卷中,以便在下次启动时跳过该步骤。

为什么在构建映像时而不是在运行容器时需要绑定端口?因为我希望certbot在构建映像时而不是在运行容器时获取证书。这或多或少是我所做的。我想在构建时运行certbot,因为安装所有东西都需要很长时间(它在raspberry Pi上运行)<代码>--仅限操作系统软件包无法解决此问题,因为e。G它不安装python软件包。所以我在构建时运行它一次,如果它失败(并且我让docker忽略错误),至少一切都设置好了。然后我在执行时再次运行它,它几乎立即生成证书。