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

轉自:https://blog.csdn.net/u011699931/article/details/70226504/

使用Docker部署 spring-boot maven應用

部署過程分爲如下幾個步驟:java

  1. 建立一個簡單的spring-boot應用
  2. 打包運行應用
  3. 容器化應用
  4. 在pom文件中添加docker支持
  5. 建立docker鏡像
  6. 運行docker容器
  7. 查看正在運行的容器
  8. 啓動/關閉/重啓/刪除docker容器

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

在IntelliJ IDEA中File->New->Project:
這裏寫圖片描述
這裏寫圖片描述
而後點Next->Finish.web

2. 打包運行應用

pom.xml中添加依賴:spring

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

添加一個控制器:docker

@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(沒有後綴),內容以下:springboot

FROM frolvlad/alpine-oraclejdk8:slim VOLUME /tmp ADD demo-0.0.1-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/ 裏面的文件名ruby

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進入到當前目錄:oracle

cd Z:/Desktop/springboot-demo

打包,建立鏡像:app

mvn package -Dmaven.test.skip=true docker:build

注意: 請確保maven已添加到path中;而且已安裝docker,若是沒有安裝,請訪問: https://www.docker.com/community-edition#/download 下載合適的版本.dom

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

相關文章
相關標籤/搜索