1、創建Dockerfile
FROM java:8 #EXPOSE 8900
ADD springboot.jar app.jar RUN bash -c 'touch /app.jar' ENTRYPOINT ["java","-jar","/app.jar","--spring.config.location=/data/java/config/application-dev.yml"]
FROM java:8:使用jdk8作為基礎鏡像
EXPOSE 8900:暴露容器的8900端口
ADD springboot.jar app.jar:將復制指定的java.jar為容器中的app.jar,相當於拷貝到容器中取了個別名
RUN bash -c ‘touch /app.jar’: 創建一個新的容器並在新的容器中運行命令
ENTRYPOINT[]:相當於在容器中用cmd命令執行jar包
2.Dockerfile配置文件
主要是jar包的運行方式,注意看最后一個ENTRYPOINT
參數中的 --spring.config.location
,這里表示運行的時候動態掃描加載某個目錄下的配置文件。我們使用docker build
將jar
包打好鏡像后,繼續看第二步
3.運行docker容器命令,主要是掛載目錄
假設鏡像名字和版本為 springboot:2019,使用下面命令創建
docker run -dit \ --name springboot\ -p 8900:8900 \ -v /home/springboot/config:/data/java/config \ springboot:2019
我們將linux宿主機上的/home/config/config目錄掛載到容器中的/data/java/config目錄,大家發現沒,第一步的Dockerfile文件中的配置的掃描目錄就是/home/config/config目錄下的application-dev.yml配置文件,這樣我們直接可以修改宿主機上的application-dev.yml配置文件,從而就是修改了容器中的application-dev.yml配置文件,所以我們再重新restart啟動的時候,可以發現,掃描的內容就是我們修改之后的。
因為掛載目錄是可以將宿主機上的文件和容器中的文件進行交互的,簡單來說就是共享同一個文件。