先撰寫Dockerfile 來製作docker image,例如後端
實際操作
假設您的 Docker Hub 用戶名是
username
,您可以這樣操作:- 構建鏡像:
這會創建一個本地標籤為
my-app
的 Docker 鏡像。- 添加標籤:
這會給鏡像添加一個新標籤,這個標籤用於 Docker Hub。
3.推送到 Docker Hub:
這會將標籤為
username/my-app
的鏡像推送到 Docker Hub 上您的存儲庫。正確使用 Build Args
在您的 GitHub Actions 工作流中,您使用
build-args
來傳遞環境變量,但格式似乎有點問題。應該像這樣設定:這樣會將這些環境變量的值作為構建參數傳遞給 Docker。
Dockerfile 中使用 ARG
在您的
Dockerfile
中,使用 ARG
指令接收這些參數:我的寫法:
CI/CD 執行 build docker up to docker hub
執行docker
當您想要容器在執行imgae,例如:
這裡的
-p 8000:8000
表示將容器內的 8000 端口映射到主機的 8000 端口。這樣一來,當您在瀏覽器中訪問 http://localhost:8000
時,您實際上訪問的是運行在 Docker 容器中、監聽在 8000 端口上的應用程序。查詢所有容器
自動刪除容器
當您想要容器在停止後自動刪除時,可以在
docker run
命令中使用 --rm
標誌。例如:這樣,當容器停止運行時,它會自動從系統中移除。
手動刪除容器
如果容器已經被創建且未使用
--rm
標誌,您可以使用以下命令手動刪除容器:- 停止容器:
- 刪除容器:
Install docker on ubuntu VM
- 移除舊版本:
- 更新套件列表:
3. 安裝相關套件,確保 apt 透過 HTTPS 使用套件庫:
- 添加 Docker 的官方 GPG 密鑰:
- 設定穩定版倉庫:
- 再次更新套件列表:
- 安裝 Docker Engine:
- 驗證安裝,透過運行 hello-world 映像:
CI/CD deploy to VM
最後如果想要部署到vm的話再加上
記得要在vm上做這件事,讓docker 不需要sudo就可以操作,這樣可以降低使用docker權限,script也不用打sudo docker