前置条件:
1. 服务器(我这边是CentOS7)上已经安装了Docker(安装步骤很简单,可以参考我上一篇博客)
2.服务器上已经安装了Java和Maven
在满足以上条件后,我们就可以开始了:
1. 创建一个简单的Spring Boot应用,应用只有一个控制器DockerController,内容如下:
package cn.bounter.docker.controller; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; @RestController @RequestMapping("/api/docker") public class DockerController { @GetMapping public String get() { return "Hello Docker!"; } }
2. 在pom文件中添加dockerfile-maven-plugin插件,添加之后的build如下:
<build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> <!--Docker--> <plugin> <groupId>com.spotify</groupId> <artifactId>dockerfile-maven-plugin</artifactId> <version>1.3.6</version> <executions> <execution> <id>default</id> <phase>package</phase> <goals> <goal>build</goal> </goals> </execution> </executions> <configuration> <repository>bounter/${project.artifactId}</repository> <buildArgs> <JAR_FILE>target/${project.build.finalName}.jar</JAR_FILE> </buildArgs> </configuration> </plugin> </plugins> </build>
3. 在和pom文件同级目录下创建Dockerfile,内容如下:
FROM openjdk:8 VOLUME /tmp ARG JAR_FILE COPY ${JAR_FILE} app.jar ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]
4. 拷贝应用代码到服务器,在pom所在的目录执行:mvn clean package
5. 查看所创建的镜像:docker images
6. 创建容器并运行:docker run -d -p 8080:8080 bounter/bounter-docker
7. 验证:curl localhost:8080/api/docker
以上就是全部步骤了,是不是很简单哉,赶快自己动手试试吧!如果还有什么不明白的,请参考我的Github,地址:https://github.com/13babybear/bounter-docker