{{ v.name }}
{{ v.cls }}类
{{ v.price }} ¥{{ v.price }}
如何在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