1.所使用材料 ,spring boot 專案 基於maven ,maven 工具, docker工具
ps:為啥使用 docker 公司微服務需要啟動太多,有兩個優點吧! 1.方便管理,2.減少服務佔用記憶體量
2.上手
a.新建Dockerfile檔案如下目錄
b.Dockerfile檔案內容
FROM openjdk:8-jdk-alpine VOLUME /tmp ARG JAR_FILE COPY ${JAR_FILE} app.jar ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"] ps: FROM: 第一條指令必須是FROM指令 (環境依賴 jdk 版本等) VOLUME: 作用是建立在本地主機或其他容器可以掛載的資料卷,用來存放資料。 ARG: 定義一個變數 JAR_FILE: 為pom檔案中專案定義的路徑地址 COPY: 複製本地主機src目錄或檔案到容器的desc目錄,desc不存在時會自動建立。 ENTRYPOINT: 每個Dockerfile中只能有一個ENTRYPOINT,當有多個時最後一個生效。
c.pom檔案修改
<properties> <docker.image.prefix>springio</docker.image.prefix> </properties> <plugin> <groupId>com.spotify</groupId> <artifactId>dockerfile-maven-plugin</artifactId> <version>1.3.6</version> <configuration> <repository>${docker.image.prefix}/${project.artifactId}</repository> <buildArgs> <JAR_FILE>target/${project.build.finalName}.jar</JAR_FILE> </buildArgs> </configuration> </plugin> </plugins>
這個時候 專案中檔案修改告一段落
d.需要在maven中新增配置(不加入可能會導致 docker:build 不識別) 否則會報 No plugin found for prefix 'docker' in the current project and in the plugin groups...
e.docker 配置需要更改(勾選)否則會報 localhost:2375 [localhost/127.0.0.1, localhost/0:0:0:0:0:0:0:1] failed: Connection refused: connect
3.最後命令
a.mvn package dockerfile:build(專案路徑下) b.docker 檢視映象 docker images c.執行專案 docker run -d -p 8099:8099 springio/xlw_demo4.總結
a.問題 如果程式碼更改,docker映象中還是老程式碼,需要手動刪除很不方便 b.啟動的時候需要命令號視窗啟動不方便 c.開啟軟體時能否跟隨docker一起啟動原文:https://www.cnblogs.com/ziyegediao/p/11758899.html