一步一步使用Docker部署spring-boot項目

準備工作

  1. 安裝Docker,網上很多教程可以參考一下Docker安裝教程

  2. SpringBoot項目,參考教程

開搞開搞


  1. 在項目目錄創建Dockerfile文件:
FROM frolvlad/alpine-oraclejdk8:slim
VOLUME /tmp
ADD security-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" ]
  1. Pom文件中添加docker支持
<properties>
   <docker.image.prefix>security</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</dockerDirectory>
                <resources>
                    <resource>
                        <targetPath>/</targetPath>
                        <directory>${project.build.directory}</directory>
                        <include>${project.build.finalName}.jar</include>
                    </resource>
                </resources>
            </configuration>
        </plugin>
    </plugins>
</build>
  1. 創建docker鏡像
    項目根目錄下執行命令
shenjiangangdeMacBook-Pro:security shenjg$ mvn package -Dmaven.test.skip=true docker:build

打包成功後可以看到

Successfully built ee0de0d073c8
Successfully tagged security/security:latest
[INFO] Built security/security
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 21.123 s
[INFO] Finished at: 2018-09-17T17:29:00+08:00
[INFO] Final Memory: 36M/542M
[INFO] ------------------------------------------------------------------------
  1. 運行docker容器
shenjiangangdeMacBook-Pro:blog shenjg$ docker run --name=docker-demo -p 8080:8080 -t security/security

沒有問題的話就可以看到springboot項目的啓動過程,啓動完成後使用瀏覽器訪問

localhost:8080

整個打包部署的流程告一段落,接下來可以查看一下容器的運行狀態

查看容器的運行情況

shenjiangangdeMacBook-Pro:security shenjg$ docker ps
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                    NAMES
b1525df1db15        security/security   "sh -c 'java $JAVA_O…"   6 minutes ago       Up 6 minutes        0.0.0.0:8080->8080/tcp   docker-demo

docker容器的基本操作(啓動/關閉/重啓/刪除)

docker start/stop/restart/rm CONTAINER ID /NAMES 

其中:
CONTAINER ID : 是容器id,執行 docker ps 可查看 eg:b1525df1db15
NAMES: 是容器的名稱,也就是docker run –name後面的名字 eg:docker-demo

項目源碼:https://github.com/tinet-shenjg/security

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章