把Jar包打包為docker鏡像


使用Dockfile來創建鏡像

試驗的jar包是用httpServer寫的一個簡單web服務,訪問/test就返回helloworld,下面先拉取一個java:8的基礎鏡像:

docker pull java:8,再用docker images檢查一下:

下面是Dockfile的內容:

FROM java:8
MAINTAINER xxx
COPY httpServerDemo.jar /usr/local/httpServerDemo.jar
EXPOSE 8089
ENTRYPOINT ["java", "-jar", "/usr/local/httpServerDemo.jar"]

生成鏡像:

把Dockfile和jar包放在同一個目錄下,執行:docker build -t httpserver_demo:1.0 -f Dockerfile .,注意Dockerfile后面的點指的是把當前目錄作為上下文目錄,創建鏡像時,會把上下文目錄的文件拷貝到鏡像中。

啟動鏡像:

docker run -P httpserver_demo:1.0,-P是把Dockerfile里EXPOSE聲明的端口映射到宿主機一個隨機的高階端口
docker run -p 8090:8089 httpserver_demo:1.0,-p就是指定映射關系,可以看出前面是宿主機的端口,后面是鏡像的端口
也可以用--name指定啟動容器的名稱:docker run --name httpserverDemo -p 8091:8089 httpserver_demo:1.0

 
 

Dockerfile內容解釋:

 java:8就是剛下載的基礎鏡像,MAINTAINER是作者,COPY是把本地的jar拷貝到鏡像中,EXPOSE聲明鏡像開放的接口,

ENTRYPOINT 是指定在docker run時的命令參數,類似的還是RUN和CMD命令,區別參考:https://www.cnblogs.com/klvchen/p/9238410.html

結論

可以在啟動鏡像的時候,用--entrypoint 選項來覆蓋Dockfile里ENTRYPOINT 的設置,來增加JaCoco的javaagent參數


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM