如何在docker容器中部署应用

阅读:1924 2019-11-23 17:47:11

  如何在docker容器中部署应用?docker是开发者的开放平台,容器是可扩展的,可更安全的使用和部署。Docker容器能够共享一个内核并共享应用程序库,这里介绍在Docker容器中部署简单的SpringBoot应用。


  一个简单的HelloWorld应用。


  1.1Maven依赖


  <parent>

  <groupId>org.springframework.boot</groupId>

  <artifactId>spring-boot-starter-parent</artifactId>

  <version>1.5.4.RELEASE</version>

  <relativePath/><!--lookupparentfromrepository-->

  </parent>

  引入spring-boot-starter-web来创建一个Web应用。


  <dependency>

  <groupId>org.springframework.boot</groupId>

  <artifactId>spring-boot-starter</artifactId>

  </dependency>


  <dependency>

  <groupId>org.springframework.boot</groupId>

  <artifactId>spring-boot-starter-test</artifactId>

  <scope>test</scope>

  </dependency>


  <dependency>

  <groupId>org.springframework.boot</groupId>

  <artifactId>spring-boot-starter-web</artifactId>

  </dependency>

  1.2主应用程序


  @SpringBootApplication

  publicclassFirtSpringBootApplication{


  publicstaticvoidmain(String[]args){

  SpringApplication.run(FirtSpringBootApplication.class,args);

  }

  }

  1.3服务接口


  RESTful服务接口:


  @RestController

  publicclassHelloController{

  @RequestMapping("/hello")

  publicStringhello(){

  return"HelloWorld";

  }

  }

  2安装Docker,安装完毕后,Docker环境的虚拟IP是192.168.99.100。


  3部署应用


  3.1SpringBoot应用打包


  在SpringBoot应用工程目录下执行mvn打包命令:


  mvnpackagespring-boot:repackage


  工程的target目录里生成了一个jar包firtSpringBoot-0.0.1-SNAPSHOT.jar。将jar包更名为firtSpringBoot-1.0.jar上传到Docker环境里。


  3.2Dockerfile文件


  Dockfile原则上是一个批处理文件,包含了构建镜像的命令。将这些命令放入文件中并不是绝对必要的,因为我们可以将它们传递到命令行,只是使用文件更简单一些。


  现在创建一个Dockerfile:


  FROMalpine:edge

  MAINTAINERpeterwanghao.com

  RUNapkadd--no-cacheopenjdk8

  VOLUME/tmp

  ADDfirtSpringBoot-1.0.jarfirtSpringBoot.jar

  EXPOSE8080

  ENTRYPOINT["java","-jar","/firtSpringBoot.jar"]

  3.3创建镜像


  在Dockerfile文件目录下运行dockerbuild命令,这将下载基镜像并一条接一条地运行Dockerfile文件中的条目。创建的镜像的名字是first,标签1.0。–rm=true,在整个构建过程成功后删除中间环节的容器。


  $dockerbuild-tfirst:1.0--rm=true.


  使用dockerimages命令列出所有的镜像和它们的详细信息。


  docker@default:~/first-spring-boot$dockerimages

  REPOSITORYTAGIMAGEIDCREATEDSIZE

  first1.002f67d8c308d17hoursago119MB

  hello-worldlateste38bc07ac18e6weeksago1.85kB

  alpineedge5c4fa780951b4monthsago4.15MB

  3.4运行容器


  接下来,我们将运行容器。使用下面的命令加载并运行容器。


  dockerrun--name=first-p8080:8080-tfirst:1.0


  使用dockerps命令列出正在运行的容器


  docker@default:~/first-spring-boot$dockerps

  CONTAINERIDIMAGECOMMANDCREATEDSTATUSPORTSNAMES

  9fc3aef6e852first:1.0"java-jar/firtSpri5hoursagoUp5hours0.0.0.0:8080->8080/tcpfirst


相关文章
{{ v.title }}
{{ v.description||(cleanHtml(v.content)).substr(0,100)+'···' }}
你可能感兴趣
推荐阅读 更多>
推荐商标

{{ v.name }}

{{ v.cls }}类

立即购买 联系客服