Docker构建SpringBoot镜像

####一、使用STS构建springBoot项目

项目结构

├─src
│  ├─main
│  │  ├─java
│  │  │  └─com
│  │  │      └─example
│  │  └─resources
│  │      ├─static
│  │      └─templates
│  └─test
│      └─java
│          └─com
│              └─example
└─target

pom.xml

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
	<modelVersion>4.0.0</modelVersion>

	<groupId>com.example</groupId>
	<artifactId>springboot</artifactId>
	<version>1.0</version>
	<packaging>jar</packaging>

	<name>SpringBoot</name>
	<description>Demo project for Spring Boot</description>

	<parent>
		<groupId>org.springframework.boot</groupId>
		<artifactId>spring-boot-starter-parent</artifactId>
		<version>1.5.1.RELEASE</version>
		<relativePath/> <!-- lookup parent from repository -->
	</parent>

	<properties>
		<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
		<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
		<java.version>1.8</java.version>
	</properties>

	<dependencies>
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-web</artifactId>
		</dependency>

		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-test</artifactId>
			<scope>test</scope>
		</dependency>
	</dependencies>

	<build>
		<plugins>
			<plugin>
				<groupId>org.springframework.boot</groupId>
				<artifactId>spring-boot-maven-plugin</artifactId>
			</plugin>
		</plugins>
	</build>
</project>

Application.java

package com.example;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
@SpringBootApplication
public class Application {

	@RequestMapping("/")
	public String index(){
		
		return "Hello Docker .";
	}
	
	public static void main(String[] args) {
		SpringApplication.run(Application.class, args);
	}
}

使用maven打包项目,在target目录下得到springboot-1.0.jar

mvn clean pakcage //先清理再进行打包

target/springboot-1.0.jar

run项目


  .   ____          _            __ _ _
 /\\ / ___'_ __ _ _(_)_ __  __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
 \\/  ___)| |_)| | | | | || (_| |  ) ) ) )
  '  |____| .__|_| |_|_| |_\__, | / / / /
 =========|_|==============|___/=/_/_/_/
 :: Spring Boot ::        (v1.5.1.RELEASE)
......
2017-02-22 13:51:45.408  INFO 1588 --- [           main] s.b.c.e.t.TomcatEmbeddedServletContainer : Tomcat started on port(s): 8080 (http)
2017-02-22 13:51:45.423  INFO 1588 --- [           main] com.example.Application                  : Started Application in 2.004 seconds (JVM running for 2.622)
2017-02-22 13:51:58.432  INFO 1588 --- [nio-8080-exec-1] o.a.c.c.C.[Tomcat].[localhost].[/]       : Initializing Spring FrameworkServlet 'dispatcherServlet'
2017-02-22 13:51:58.433  INFO 1588 --- [nio-8080-exec-1] o.s.web.servlet.DispatcherServlet        : FrameworkServlet 'dispatcherServlet': initialization started
2017-02-22 13:51:58.452  INFO 1588 --- [nio-8080-exec-1] o.s.web.servlet.DispatcherServlet        : FrameworkServlet 'dispatcherServlet': initialization completed in 19 ms

地址栏输入http://localhost:8080/, 得到如下结果,项目构建成功。

Hello Docker .

####二、构建Docker镜像,启动Docker容器

上传springboot-1.0.jar到装有Docker服务的linux系统,这里我用的是ubutun14.04

这里写图片描述

开始编写Dockerfile文件,

vi Dockerfile

Dockerfile的内容,保存退出

FROM hub.c.163.com/xbingo/jdk8
ADD ./springboot-1.0.jar  /springboot.jar
EXPOSE 8080
CMD ["java","-jar","/springboot.jar"]

ll查看

root@ubuntu:/data/test# ll
total 14004
drwxr-xr-x 2 root root     4096 Feb 21 22:38 ./
drwxr-xr-x 5 root root     4096 Feb 21 22:20 ../
-rw-r--r-- 1 root root      124 Feb 21 22:25 Dockerfile
-rw-r--r-- 1 root root 14326404 Feb 21 22:20 springboot-1.0.jar
root@ubuntu:/data/test#

构建镜像,别忘记后面的".",表示Dockerfile的文件位置

root@ubuntu:/data/test# docker build -t springboot:1.0 .
Sending build context to Docker daemon 14.33 MB
Step 1/4 : FROM hub.c.163.com/xbingo/jdk8
 ---> 3273714c9663
Step 2/4 : ADD ./springboot-1.0.jar /springboot.jar
 ---> 556a8eba0f6a
Removing intermediate container 8d6a88c466e2
Step 3/4 : EXPOSE 8080
 ---> Running in 327fc70b5fa9
 ---> e5e6c6b29983
Removing intermediate container 327fc70b5fa9
Step 4/4 : CMD java -jar /springboot.jar
 ---> Running in 4a9c41547c8c
 ---> c745ff82ccac
Removing intermediate container 4a9c41547c8c
Successfully built c745ff82ccac
root@ubuntu:/data/test# 


查看镜像列表,已生成springboot镜像

root@ubuntu:/data/test# docker images
REPOSITORY                         TAG                 IMAGE ID            CREATED             SIZE
springboot                         1.0                 c745ff82ccac        5 minutes ago       182 MB
root@ubuntu:/data/test# 

启动容器,并查看运行容器列表

root@ubuntu:/data/test# docker run -d -p 8080:8080 --name springboot springboot:1.0
840e8f08bdbbf10f3050c4c7ec38ba7c1ce90378b0f31a3a8cc7a1d2ddf66119
root@ubuntu:/data/test# docker ps
CONTAINER ID        IMAGE                    COMMAND                  CREATED             STATUS              PORTS                                       NAMES
840e8f08bdbb        springboot:1.0           "java -jar /spring..."   4 seconds ago       Up 3 seconds        0.0.0.0:8080->8080/tcp                      springboot

打开宿主主机的浏览器:输入http://localhost:8080,预览效果

这里写图片描述

要想查看Docker容器日志,显示日志结果和第一步的启动日志一致

docker logs springboot
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值