在由 docker 拉取的 Spring Boot 应用程序中实现 LetsEncrypt

     2023-02-27     233

关键词:

【中文标题】在由 docker 拉取的 Spring Boot 应用程序中实现 LetsEncrypt【英文标题】:Implement LetsEncrypt in Spring Boot app that is being pulled by docker 【发布时间】:2020-05-11 00:55:59 【问题描述】:

我正在尝试在 Spring Boot 应用程序上实现 LetsEncrypt。我正在使用 docker 进行部署,我正在本地创建一个 docker 映像,将其推送到 docker hub,然后使用此 docker 命令在 Ubuntu 中运行它docker run -d -p 80:80 myapp:latest,这只是http,所以现在我正在尝试使用LetsEncrypt但我不知道该怎么做。任何帮助或对某些链接的任何指导将不胜感激。谢谢

【问题讨论】:

【参考方案1】:

架构:需要反向代理+容器编排工具

如果您的 Spring-Boot 容器只处理 HTTP 请求,您可以将其与 TLS termination proxy 链接,这将接受传入的 TLS 连接并将请求转发到您的容器。

可以使用许多反向代理的实现,它们可以扮演 TLS 终止代理的角色(请参阅this paragraph on Wikipedia),例如使用让我们按照您的建议进行加密。

这些实现中的大多数也可以作为 Docker 镜像使用,因此您可能需要依赖容器编排工具(例如 docker-compose 以及 docker-compose.yml)来为两个容器创建专用网络以进行通信(或者,使用更复杂的orchestration solution,例如Kubernetes)。

几个 Docker 实现概述

举几个实现这一点的 Docker 镜像示例,例如,您可以使用这些流行的反向代理之一(前两个在 Gitea's doc 中提到):

NGINX(也捆绑在 https-portal 等项目中以自动生成证书), Apache2 httpd, Træfik,另外提供了一个“监控仪表板”作为 web 应用程序(另请参阅 official doc,它提供了有关自动证书生成的许多详细信息)

【讨论】:

【参考方案2】:

如果您想保持简单(仅使用 Spring-Boot 应用程序保留 1 个容器,没有 Sidecar),您可以使用库 LetsEncrypt Spring-Boot helper。它允许 Spring-Boot 上的嵌入式 Tomcat 获取 LetsEncrypt 证书并自动更新。

作为它的关键优势 - 它是原生 Java + Spring-Boot,因此不需要 sidecar,只需嵌入库,公开端口 80 和 443,其他一切都会自动完成。

我创建它的原因是所有这些边车只是给应用程序增加了不必要的配置复杂性。对于简单的宠物项目,这种增加的复杂性是不合理的。 Spring-Boot 的嵌入式 Tomcat 对于这类项目来说绰绰有余

【讨论】:

docker拉取的镜像源更改为国内的镜像源(代码片段)

原文:Docker拉取的镜像源更改为国内的镜像源vim/etc/docker/daemon.json"registry-mirrors":["https://kfwkfulq.mirror.aliyuncs.com","https://2lqq34jg.mirror.aliyuncs.com","https://pee6w651.mirror.aliyuncs.com","https://reg 查看详情

docker拉取的镜像源更改为国内的镜像源(代码片段)

原文:Docker拉取的镜像源更改为国内的镜像源vim/etc/docker/daemon.json"registry-mirrors":["https://kfwkfulq.mirror.aliyuncs.com","https://2lqq34jg.mirror.aliyuncs.com","https://pee6w651.mirror.aliyuncs.com","https://registry.docker-cn.com","http://hub-mirror.c.163.com"],"dns":["8.8.8.8... 查看详情

docker快速安装kafka,zookeeper,体验spring-boot-demo-mq-kafka

docker快速安装kafka,zookeeper,体验spring-boot-demo-mq-kafka网址,https://gitee.com/xkcoding/spring-boot-demo下载开源代码。导入spring-boot-demo-mq-kafka项目到IDEA Linux先开放以下端口:2181,9092搜索镜像zookeeper,kafkahttps://hub.docker.com/1.https://hub.do... 查看详情

docker镜像拉取失败

参考技术A这个要看具体报错有些可能是网络不通或者没有权限,比如你访问的docker镜像仓库需要登录;有些是你要拉取的镜像没有输入正确的名称或者tag,比如有些镜像没有latest这个tag 查看详情

docker中jenkins启动无法安装插件,版本过低

一、问题现象:  使用docker启动jenkins,在jenkins启动后却无法安装jenkins的插件,一直提示安装失败且从log看到提示信息显示为需要升级jenkins的版本    二、原因分析:  在使用docker拉取jenkins镜像时没有拉取最新的j... 查看详情

dockerpull下来的镜像都存到了哪里

dockerpull下来的命令都默认存在 /var/lib/docker/文件夹下。查看/var/lib/docker/image/overlay2/repositories.json文件:正好和dockerimages的内容一致。1、进入docker目录,文件结构如下:  2.进入containers目录,这个目录中保存是已拉取的... 查看详情

改进 Docker 中的 Spring-Boot 启动

】改进Docker中的Spring-Boot启动【英文标题】:ImproveSpring-BootstartupinDocker【发布时间】:2017-02-1420:36:46【问题描述】:大约独立启动为java进程:java-jarmyspring_boot.jar大约需要20秒。但是,如果我在包含更多微服务的docker容器中运行它... 查看详情

无法使用 Spring Boot 应用程序连接到 Docker 映像

】无法使用SpringBoot应用程序连接到Docker映像【英文标题】:Notabletoconnecttodockerimagewithaspringbootapplication【发布时间】:2019-08-2822:49:11【问题描述】:DockerfileFROMopenjdk:8ADDtarget/docker-spring-boot.jardocker-spring-boot.jarEXPOSE8085ENTRYPOIN 查看详情

spring-boot项目的docker集成化部署

目录spring-boot项目的docker集成化部署前言基本思路与方案基本步骤准备源码服务器和基础环境结语1.本文总结:2.后期优化:spring-boot项目的docker集成化部署前言据说流行的微服务和docker一起,更配哦!接下来,使用简单spring-boot... 查看详情

dockerized postgres 和 dockerized Spring boot app

】dockerizedpostgres和dockerizedSpringbootapp【英文标题】:dockerizedpostgresanddockerizedSpringbootapp【发布时间】:2019-03-1508:31:23【问题描述】:我的application.properties文件server.port=8085spring.datasource.driverClassName=org.postgresql.Dri 查看详情

k8s访问自己搭建的私库(代码片段)

1.创建访问Secretkubectlcreatesecretdocker-registrymy-registry-key--docker-server=192.168.0.200:30082--docker-username=admin--docker-password=1234562.拉取镜像的配置apiVersion:apps/v1kind:Deploymentmetadata:name:spring-boot-demo-deploymentspec:replicas:1selector:matchLabels:name:spring-boot... 查看详情

spring-boot 无法在 docker 中启动

】spring-boot无法在docker中启动【英文标题】:spring-bootcannotstartindocker【发布时间】:2016-10-2421:54:27【问题描述】:我在docker中运行我的SpringBoot应用程序时遇到了一点问题。堆栈:maven3+,springboot(jpa/rest/jetty)-mysql-在docker中部署所... 查看详情

Spring Boot + MySQL + Docker Compose - 无法使 Spring Boot 连接到 MySQL

】SpringBoot+MySQL+DockerCompose-无法使SpringBoot连接到MySQL【英文标题】:SpringBoot+MySQL+DockerCompose-CannotmakeSpringBootconnecttoMySQL【发布时间】:2020-07-1215:56:09【问题描述】:我一直在尝试在后端(在SpringBoot上运行)容器和预构建的MySQL容器... 查看详情

Docker 中的 Spring Boot

】Docker中的SpringBoot【英文标题】:SpringBootinDocker【发布时间】:2017-09-2804:47:15【问题描述】:我正在学习如何将Docker与SpringBoot应用程序一起使用。我遇到了一个小障碍,我希望有人能看到这个问题。我的应用程序严重依赖于环... 查看详情

使用 Spring Boot 代码运行 docker 容器

】使用SpringBoot代码运行docker容器【英文标题】:runningdockercontainerwithspringbootcode【发布时间】:2018-11-2814:31:16【问题描述】:Amgettingbelowerrorwhenamrunningmyspringbootapplicationindockercontainer.Anyideawhyamfacingthisissue.以下是出现的错误。无需... 查看详情

spring-boot构建上传到nexus私服

...用的时http而不是https故需要在启动参数文件中设置vi/etc/docker/daemon.json,将ip:8082和ip:8083添加到insecure-registries参数中,由于我们的远程仓库地址为http://hub-mirror.c.163.com,不为https故同样需要将该地址添加到insecure-registries参数中:&q... 查看详情

Dockerize Spring Boot mongo

】DockerizeSpringBootmongo【英文标题】:Dockerizespringbootmongo【发布时间】:2021-11-1702:54:54【问题描述】:我正在尝试使用mongodb后端对SpringBootWeb应用程序进行dockerize。我运行mongo并使用以下命令将其映射到主机:dockerrun-p27017:27017--namem... 查看详情

使用spring boot mysql docker时docker撰写问题

】使用springbootmysqldocker时docker撰写问题【英文标题】:dockercomposeproblemwhileusingspringbootmysqldocker【发布时间】:2021-03-0410:18:09【问题描述】:我在尝试运行dockercompose时遇到此异常app-server_1|com.mysql.cj.jdbc.exceptions.CommunicationsException:Co... 查看详情