搜尋此網誌

2025年10月13日 星期一

本地端 Docker Registry

緣起:


    我要在 MSI 筆電 (Windows) 上跑 ComfyUI Docker,不想再花時間跟網路流量再載一次那個超大的 docker image,所以選擇在 MSI 筆電 (Arch) 把那個 image export 成 tar,然後再 FTP 傳到我那台 N100 上,接著 MSI 筆電重開機,切換作業系統為 Windows,最後用 FTP 從 N100 下載那個 tar 檔並 import。

    export image 成一個 tar 檔

docker save -o <檔案名稱>.tar <目標image名稱>:<tag>

    把 tar 檔 import 為 image

docker import <目標檔案>.tar

    在 Windows 上 import 時出問題,我下了指令後它就卡在那邊,????,它就這樣一動也不動,我等了 30 分鐘後才發覺這有問題,乾,只能另尋其它的方法,借由這次的機會來學習使用本地端的 Docker Registry。


Docker Registry:


    參考這篇文章,用來管理 Docker image 的 Docker Registry Server 也是能用 Docker 跑 XD,在 N100 上輸入指令來跑 Registry Server

docker run -d -p 5000:5000 -v ./DockerHub-Storage:/var/lib/registry --name registry registry:2

    然後在 MSI 筆電 (Arch) 上先 tag yanwk/comfyui-boot (10.42.0.1 是 N100 的 ip)

sudo docker tag yanwk/comfyui-boot:cu126-slim 10.42.0.1:5000/comfyui


    然後 push image

sudo docker push 10.42.0.1:5000/comfyui

    會看到錯誤


    去修改 /etc/docker/daemon.json,在 {} 內加入這行

"insecure-registries": ["192.168.182.134:5000"]

    然後重啟 docker,再 push 一次,就能成功把 image push 上去。

sudo systemctl restart docker

    push  完後,可以到 container 掛載的資料夾裡頭去看,在路徑 /docker/registry/v2/repositories 可以看到我們上傳的 image


    再來重啟 MSI 筆電,切成 Windows,去 Settings -> Docker Engine 那邊,{}裡加上這行 (N100 的 IP)

"insecure-registries": ["10.42.0.1:5000"]

    重啟 Docker Desktop,然後打開 cmd 輸入

docker pull 10.42.0.1:5000/comfyui

有在載了

    載完後可以用 docker images 查看

成功


Registry 刪除 image:


    有想到一件事,就是 Docker Registry 的 image 要怎麼管理,像是想刪除的話要怎麼做?所以有再去查個資料。
    
    可以呼叫 registry 的 api 來操作,用 curl 來發送 HTTP 請求。如果想刪除 image 的話,可以先查目標 repository 有哪些 tag

curl -X GET http://localhost:5000/v2/comfyui/tags/list


    然後查看它的 digest

curl -I -X GET http://localhost:5000/v2/comfyui/manifests/latest


    刪除

curl -X DELETE http://localhost:5000/v2/comfyui/manifests/{那個sha256}


沒有留言:

張貼留言