Docker 推送鏡像

Docker 推送鏡像
from https://miro.medium.com/v2/resize:fit:720/format:webp/1*p8k1b2DZTQEW_yf0hYniXw.png

在現代軟體開發中,容器化已成為部署應用程式的主流方式。它不僅簡化了開發過程,還大大提高了應用程式的可移植性和一致性。

以下會簡單敘述如何將專案容器化,並將其推送到鏡像庫,為部署做好準備。

  • 推送流程
  • 登入私有庫

推送流程

  • 正常流程
建立鏡像(build) -> 上tag -> 推送(push) 
 
# 建立鏡像(build) 
# -t 代表tag 名稱 
# -f Dockerfile位置 , 將會按照該檔案 建立鏡像 
# . 表示當前位置 
docker build -t backend-node -f ./xxx/xxx/Dockerfile . 
 
# 上 tag 
# backend-node 等於上面 -t 的名稱 
# 網址(harbor.xxx.com/prj/node:v1)  
## 等於是要推送的鏡像網站 ex: harbor , ecr ... 等  
## 後面 :v1 表示 要打上的標籤 
docker tag backend-node harbor.xxx.com/prj/node:v1 
 
 
# 推送(push) 
docker push harbor.xxx.com/prj/node:v1
  • 精簡版流程
建立鏡像上tag -> 推送(push) 
 
# 建立鏡像(build) 
# -t 代表tag 名稱 , 同時直接指向到要推送的鏡像庫 
# -f Dockerfile位置 , 將會按照該檔案 建立鏡像 
# . 表示當前位置 
docker build -t harbor.xxx.com/prj/node:v1 -f ./xxx/xxx/Dockerfile . 
 
# 推送(push) 
docker push harbor.xxx.com/prj/node:v1 
 
 
 
# 建制後 直接推送 請注意後面有個「.」 
docker build -t harbor.xxx.com/prj/node:v1 -f ./xxx/xxx/Dockerfile --push .

測試運行

# -it 交互式 若無運行時的容器 會馬上退出可以用這個方法直接訪問 
# --rm 訪問後退出容器 則自動刪除該容器 但鏡像還會在ㄇ 
docker run -it --rm harbor.xxx.com/prj/node:v1 sh

私有庫

# 登入私有庫 
docker login harbor.xxx.com 
 
# 登入後即可正常推送 
docker push harbor.xxx.com/xxx:tag 
 
# 登出私有庫 
docker logout harbor.xxx.com