使用Docker部署 spring-boot maven應用
部署過程分為以下幾個步驟:
- 建立一個簡單的spring-boot應用
- 打包運作應用
- 容器化應用
- 在pom檔案中添加docker支援
- 建立docker鏡像
- 運作docker容器
- 檢視正在運作的容器
- 啟動/關閉/重新開機/删除docker容器
1. 建立一個簡單的spring-boot應用
在IntelliJ IDEA中File->New->Project:
![](https://img.laitimes.com/img/9ZDMuAjOiMmIsIjOiQnIsICdzFWRoRXdvN1LclHdpZXYyd2LcBzNvwVZ2x2bzNXak9CX90TQNNkRrFlQKBTSvwFbslmZvwFMwQzLcVmepNHdu9mZvwFVywUNMZTY18CX052bm9CX90TUNp3aU9UNZRVT4FEVkZXUYpVd1kmYr50MZV3YyI2cKJDT29GRjBjUIF2LcRHelR3LcJzLctmch1mclRXY39DMwkzNzkDNwEDOxQDM3EDMy8CX0Vmbu4GZzNmLn9Gbi1yZtl2Lc9CX6MHc0RHaiojIsJye.jpg)
然後點Next->Finish.
2. 打包運作應用
pom.xml中添加依賴:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
添加一個控制器:
@Controller
public class HelloWorld{
@GetMapping("/hello")
public void helloworld(HttpServletResponse response) throws IOException {
response.getWriter().write("Hello Spring-boot");
}
}
運作項目,通路: http://localhost:8080/hello,如果出現:
Hello Spring-boot
第二步完成.
3. 容器化應用
在項目目錄建立Dockerfile檔案: src/main/docker/Dockerfile(沒有字尾),内容如下:
FROM frolvlad/alpine-oraclejdk8:slim
VOLUME /tmp
ADD demo--SNAPSHOT.jar app.jar
RUN sh -c 'touch /app.jar'
ENV JAVA_OPTS=""
ENTRYPOINT [ "sh", "-c", "java $JAVA_OPTS -Djava.security.egd=file:/dev/./urandom -jar /app.jar" ]
其中
demo-0.0.1-SNAPSHOT.jar
是項目打包後
/target/
裡面的檔案名
4. 在pom檔案中添加docker支援
<properties>
<docker.image.prefix>ramer</docker.image.prefix>
</properties>
<build>
<plugins>
<plugin>
<groupId>com.spotify</groupId>
<artifactId>docker-maven-plugin</artifactId>
<version>0.4.11</version>
<configuration>
<imageName>${docker.image.prefix}/${project.artifactId}</imageName>
<dockerDirectory>src/main/docker</dockerDirectory>
<resources>
<resource>
<targetPath>/</targetPath>
<directory>${project.build.directory}</directory>
<include>${project.build.finalName}.jar</include>
</resource>
</resources>
</configuration>
</plugin>
</plugins>
</build>
5. 建立docker鏡像
cmd進入到目前目錄:
打包,建立鏡像:
mvn package -Dmaven.test.skip=true docker:build
注意: 請確定maven已添加到path中;并且已安裝docker,如果沒有安裝,請通路: https://www.docker.com/community-edition#/download 下載下傳合适的版本.
6. 運作docker容器
##最好添加--name參數
docker run --name=springboot-docker-demo -p 8080:8080 -t ramer/demo
在浏覽器通路: http://localhost:8080/hello
7. 檢視正在運作的容器
cmd:
docker ps
8. 啟動/關閉/重新開機/删除docker容器
cmd:
docker start/stop/restart/rm CONTAINER_ID/NAME
其中:
CONTAINER_ID: 是容器id,執行
docker ps
可檢視
NAME: 是容器的名稱,也就是docker run –name後面的名字