[Docker] 設置私有的 registry
雖然我們通常只要從 Docker hub pull 和 push 就可以管理映像檔。 但是面對客戶的環境要求,還是有很大的機會在基礎架構中使用私有的 registry 來管理我們的映像檔。
自架 registry 聽起來好像很難,但是只要會 Docker 就可以很輕鬆的搞定,因為 Docker 官方已經有一個現成的 registry 的映像檔 。
使用說明
輸入以下指令 docker run -d -p 5000:5000 --restart always --name myregistry registry:2
,輸入完後會 registry 就會執行起來,如下圖。
指令說明
-d
背景執行-p
對應 port 5000--restart always
容器重啟政策的設定,請參考 Restart policies (--restart)--name
命名容器為 myregistryregistry:2
映像檔名稱+版本
接下來要將要 push 的映像檔加上 localhost:5000 的 tag,這樣在 push 的時候 Docker 指令就知道要 push 到哪一個 registry。 我這邊以 alpine 映像檔為範例,輸入以下指令 docker tag alpine localhost:5000/myalpine
下 tag。
接著 push 該映像檔 docker push localhost:5000/myalpine
,如下圖。
接著輸入 API 的查詢指令 curl -X GET http://localhost:5000/v2/_catalog
,可以檢查有沒有成功 push 上去,如下圖。
之後要抓取私有 registry 映像檔的時候只要加上 localhost:5000 就可以抓取了,如下方指令 docker pull localhost:5000/myalpine
。
小結
因為自架的 registry 也是容器,所以要注意當容器被移除後,裡面的映象檔也會跟著消失,這點要特別注意。
延伸閱讀
[Docker Official Images - registry]
[Docker Registry]
[How to search images from private 1.0 registry in docker?]