本文介紹了使用Docker部署 spring-boot maven應用,分享給大家,具體如下:
部署過程分為以下幾個步驟:
1. 創建一個簡單的spring-boot應用
在IntelliJ IDEA中File->New->Project:


然后點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-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/ 里面的文件名
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進入到當前目錄:
cd Z:/Desktop/springboot-demo
打包,創建鏡像:
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后面的名字
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持億速云。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。