Docker 容器們有自己的世界,用自己的網路通信。
但要在同一個物理機器上才有用。
dockerfile 用來 build 專案,弄一個目錄出來,把專案的東西 copy 進去,lib 也抓一抓塞進去,用對應的打包建構工具生一個執行檔出來,SpringBoot 就是用 maven or gradle build 一個 .jar 包,最後生成一個 docker image。
然後 docker compose 再把 image 拉過來,啟動,啟動時候還會設一些有的沒的環境變數之類的,很多容器直接在這一起搞定,建立關係等等。
如果是部署到實例上,一樣會有 dockerfile 在專案目錄下,push 上去 github,maybe 有個腳本跑 ci/cd 的 workflow,這時就會執行 dockerfile 生成 image,丟到雲端的 image repo or dockerhub,或是直接在要部署的 target 上啟動容器之類的。