03_docker_compose.md 2.4 KB

Docker Compose Relese

  • 準備好要用的 docker-compose
    • 確定你的 docker-compose 跑得起來

重新整理 Docker Compose

  • Release 出去的 Docker Image tag 會被看到, 所以建議好好重新命名 (auth/image_name:version)

    • ecr 之類的名稱資訊建議拿掉
    • nginx 之類直接加上一些 config 拿來用的, 可以用 Dockerfile 重包
    • DottedSign 之類已經完整的, 可以 re-tag
    • docker tag 58...68.dkr.ecr.us-east-1.amazonaws.com/dottedsign:preparing kdanmobile/qnap_dotted_sign_web:1.0
  • 開一個新的 project folder

    • 建立一個新的 docker-compose.yml
    • 讓他使用新的 image tag
    • 讓他只需要 docker-compose.yml 跟 image, 不需其他檔案 (比較方便一點)
    • 確定可以正常 run

壓縮 Docker Image

  • 把 docker image 壓成 tar.gz 檔

    • 可以不用再從 docker hub 抓 (避免 ecr 登入)
    • 指令 : docker save kdanmobile/qnap_dotted_sign_web:1.0 | gzip -c > dotted_sign_web.tar.gz
    • 一個 image 可能有很多個 tag, 但 tar 只會紀錄指令中的那個 (kdanmobile/qnap_dotted_sign_web:1.0)
    • 若是指令中使用 image id (sha256), 則 tar 中不會有 tag 資訊 (只剩 id)
  • 把這些新的 Image 壓縮檔丟到新的 project folder

    • 這個 folder 只包含 docker-compose.yml 及 image 壓縮檔
    • 只需要這個 folder, 就能重新 run 整個 docker compose

還原 Docker Image

  • 在其他電腦拿到這個 folder 後
    • 切到 folder 裡
    • 還原 docker-image : docker load < dotted_sign_web.tar.gz
    • 檢查 docker ps -a 應該可以看到你的 docker image
    • docker-compopse up -d 應該可以正常執行

其他資訊

QNap 上的 system-docker 指令

  • 一般 docker 指令

    • QNap 內建一般 docker
    • QNap QTS 有提供 Container Station, 可以直接 run docker
  • QNap 另外提供了 system-docker-compose

    • 所有 docker, docker-compose 相關的指令, 都有對應的 system-docker, system-docker-compose 版本
    • 範例 : system-docker ps -a, system-docker-compose up -d
    • 他就是一般 docker, 只是把所有的 image, container, volume 等, 跟原本 docker 區隔開
    • QNap 工程師建議若要把 docker-compose 包裝成 QPKG, 可使用 system-docker-compose
    • 一般的 docker 指令, QTS 的 container station 不會看到 system-docker 的相關資訊, 不會造成使用者誤刪 or 其他麻煩