iT邦幫忙

2023 iThome 鐵人賽

DAY 9
0
DevOps

從0開始學習DevOps,並部署CICD至Java專案中系列 第 9

專案中建立Dockerfile並執行

  • 分享至 

  • xImage
  •  

於專案中建立DockerFile

# 設定JDK image -> 從docker 上下載
FROM arm64v8/openjdk:17-ea-16-jdk

# 設置工作目錄
WORKDIR /build

# 複製impl module的JAR檔到容器中
COPY impl/target/goalLife-0.1.0.jar ./impl.jar

# 默認啟動的命令,可以在運行時決定要啟動哪一個module
CMD ["java", "-jar", "impl.jar"]
  • 在專案根目錄下運行以下命令來建構image
docker build -t goal-life:latest .
  • 接著就會開始 build,都是藍色就是成功了,若有錯誤會顯示Error
    https://ithelp.ithome.com.tw/upload/images/20230924/20162058O4cYSjaovS.png
    https://ithelp.ithome.com.tw/upload/images/20230924/20162058XbwV9oL3zM.png

  • 確認docker 目前的image

docker images

就會看到專案 goal-life 已經建構了image了

Repository:為image的倉庫名稱

TAG:為版本號 ( latest → 最新版本),同一個Repository可以有多個不同版本的image

IMAGE ID :image 的 id

CREATED:創建的時間

SIZE:image 的大小
https://ithelp.ithome.com.tw/upload/images/20230924/20162058r5IiN4eU08.png

如果你使用docker 的視窗工具,也會看到image已建構

https://ithelp.ithome.com.tw/upload/images/20230924/20162058OhFYXrCYON.png

接著執行看看

輸入指令

docker run --name goal-life goal-life 

就會創建一個名為 goal-life 的container,並運行goal-life 這個image

使用 docker ps -a 確認所有container
https://ithelp.ithome.com.tw/upload/images/20230924/20162058LOx1knqn1H.png

  • 如果想要把這個image用其他的port號執行,可以再創建一個container

    docker run -d -p 8081:8080 --name goal-life-8081 goal-life

    docker run -d -p 為image goal-life 創建一個container並執行,並把container預設的8080映射到本地的8081,並命名這個container為 goal-life-8081

    (加上 -p 表示映射port號,需要使用8081去拜訪這個container)


上一篇
Dockerfile可以幹嘛?
下一篇
配置Java Web 連接MySQL Container
系列文
從0開始學習DevOps,並部署CICD至Java專案中30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言