天天看點

使用Docker部署 spring-boot maven應用使用Docker部署 spring-boot maven應用

使用Docker部署 spring-boot maven應用

部署過程分為以下幾個步驟:

  1. 建立一個簡單的spring-boot應用
  2. 打包運作應用
  3. 容器化應用
  4. 在pom檔案中添加docker支援
  5. 建立docker鏡像
  6. 運作docker容器
  7. 檢視正在運作的容器
  8. 啟動/關閉/重新開機/删除docker容器

1. 建立一個簡單的spring-boot應用

在IntelliJ IDEA中File->New->Project:

使用Docker部署 spring-boot maven應用使用Docker部署 spring-boot maven應用
使用Docker部署 spring-boot maven應用使用Docker部署 spring-boot maven應用

然後點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後面的名字