docker nginx部署web应用_用Docker部署SpringBoot应用程序

Docker是一个用于创建容器的流行平台--一组标准化的软件单元,它们在单个包中组装代码、运行时、依赖项、设置和初始化,您可以从一个计算环境可靠地运行到另一个包。将应用程序部署为Docker容器可以帮助您在多个环境(即dev、QA、暂存、生产)中顺利地移动应用程序。

549453cc39aa448c9eee9b3c45888f18

编辑搜图

请点击输入图片描述

​本教程向您展示了如何利用Docker部署SpringBoot应用程序。

你需要的是:

  • Java 8+:用SDKMAN或直接来自AdoptOpenJDK
  • Docker:我推荐Docker Desktop
  • 免费的Okta developer account稍后提供更多信息

创建一个SpringBoot应用程序

你会用Docker的帮助下生成SpringBoot项目HTTPie,一个简单的命令行HTTP客户机。

如果不想使用命令行,可以直接使用SpringInitializr网站。

从命令行中只需输入:

http https://start.spring.io/starter.zip

dependencies==web,okta

groupId==com.okta.spring-docker.demo

packageName==com.okta.spring-docker.demo

--download

然后解压缩下载的文件。

unzip demo.zip -d spring-boot-docker

cd spring-boot-docker

接下来,通过创建文件添加一个web控制器

src/main/java/com/okta/springdocker/demo/WebController.java

:

package com.okta.springdocker.demo;

import org.springframework.web.bind.annotation.RequestMapping;

import org.springframework.web.bind.annotation.ResponseBody;

import org.springframework.web.bind.annotation.RestController;

@RestController

public class WebController {

@RequestMapping("/")

public String home() {

return "Welcome!";

}

}

您还需要配置此项目的安全设置。目前,您希望允许所有的请求,所以更新您的

DemoApplication.java

存档如下:

package com.okta.springdocker.demo;

import org.springframework.boot.SpringApplication;

import org.springframework.boot.autoconfigure.SpringBootApplication;

import org.springframework.context.annotation.Configuration;

import org.springframework.security.config.annotation.web.builders.HttpSecurity;

import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter;

@SpringBootApplication

public class DemoApplication {

public static void main(String[] args) {

SpringApplication.run(DemoApplication.class, args);

}

@Configuration

static class OktaOAuth2WebSecurityConfigurerAdapter extends WebSecurityConfigurerAdapter {

@Override

protected void configure(HttpSecurity http) throws Exception {

http.authorizeRequests().anyRequest().permitAll();

}

}

}

您可以通过以下方式编译和运行您的应用程序:

./mvnw package

java -jar target/demo-0.0.1-SNAPSHOT.jar

将SpringBootApp作为一个Docker容器运行

要将应用程序作为Docker容器运行

第一步就是安装docker.

安装之后,是时候构建您的容器了。

为此,Docker使用一个描述如何组装容器的文件,称为Dockerfile。这个Dockerfile由在容器中执行的一步一步的指令组成。

注:向伸出援助之手Dockerfile reference有关可以使用的所有命令的说明。

对于SpringBoot应用程序,您将使用一个简单的

Dockerfile

档案:

6b17174ddaef4e53804803a95b08e0b4

编辑搜图

请点击输入图片描述

现在,您可以在命令行上构建容器。在替换

okta:spring_boot_docker

带着标签根据您的喜好,它将用作引用您正在构建的容器的名称:

docker build . -t okta:spring_boot_docker

如果一切顺利,您现在可以运行您的Dockerizedapp(使用相同的标签如你之前所用):

docker run --publish=8080:8080 okta:spring_boot_docker

要阻止集装箱,按下Ctrl-C。验证容器没有运行,执行:

docker ps

这将列出在您的机器上运行的所有容器。如果SpringBoot应用程序仍在运行,则可以使用(使用集装箱ID印成

docker ps

):

docker kill

当您的JAR文件在构建时被复制到容器中时,每次您想要使用新版本的应用程序时,都需要重新构建容器。因此,周期是:

  1. 更改您的代码
  2. 构建应用程序./mvnw package
  3. 构建容器docker build . -t okta:spring_boot_docker
  4. 运行容器docker run --publish=8080:8080 okta:spring_boot_docker
  5. 停止集装箱
  6. 环路

现在您已经了解了使用Docker容器运行应用程序的基本知识!接下来,您可以将已构建的容器发布到Docker注册中心(如DockerHub),这样其他人就可以获取容器,它就可以运行了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Docker是一种容器化平台,可以使应用程序在独立、可移植的容器中运行。Nginx是一款高性能的Web服务器和反向代理服务器。它能够同时处理大量的并发连接,并通过负载均衡来优化Web应用程序的性能。 在使用Docker部署web应用时,可以通过以下步骤实现: 1.准备Docker环境:首先,需要在服务器上安装Docker。可以通过官方网站提供的安装指南,根据不同的操作系统进行安装步骤,确保Docker成功运行。 2.准备web应用:将web应用程序打包为Docker镜像,可以通过编写Dockerfile来描述应用程序的环境和依赖项。在Dockerfile中,指定基础镜像为Nginx,并将应用程序的配置文件、静态资源和启动脚本添加到镜像中。 3.构建Docker镜像:使用Docker命令行工具执行docker build命令,以Dockerfile为基础构建镜像。这将自动下载基础镜像并安装应用程序的依赖项。 4.创建Docker容器:使用docker run命令创建一个新的容器实例,同时将应用程序的网络端口与主机上的特定端口进行映射,以便通过主机访问web应用程序。 5.验证web应用:通过浏览器访问主机上指定的端口,即可验证web应用程序是否成功部署。可以通过nginx的access.log和error.log来检查请求是否被成功处理。 通过使用Docker部署web应用,可以提供一种可重复的和可移植的部署方式。使用Docker的容器化技术,能够更轻松地在不同的环境中部署和管理应用程序,减少了依赖和环境问题。此外,Docker还提供了更好的资源利用和隔离,提高了应用程序的性能和安全性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值