Docker搭建本地倉庫registry
我們上傳到 Docker Hub 的映象任何人都能夠訪問,雖然可以用私有 repository,但不是免費的。
所以我們就搭建本地Registry,來管理我們自己的倉庫。
Docker 已經將 Registry 開源了,我們可以直接docker pull,
Docker Hub 上也有官方的映象 Registry,我們可以註冊一個賬號,docker login 登陸,然後下載映象。
一,部署Registry
執行命令 docker pull registry
二,執行容器
-d
是後臺啟動容器。-p
將容器的 5000 埠對映到 Host 的 5000 埠。5000 是 registry 服務埠。-v
上傳到本地的映象儲存在/myregistry/docker/registry/v2/repositories/ 下面
檢視正在執行的容器
開啟瀏覽器,訪問http://127.0.0.01:5000/v2/_catalog,可以檢視到{"repositories": []} 表示現在倉庫中,沒有映象images
三、在本地host上,重新命名映象,新增新的tag,使之與registry 相匹配
以busybox映象為例,上傳到本地倉庫中,或者從Docker Hub 下載也可以、
映象名稱由 repository 和 tag 兩部分組成,預設為latest。可以在docker build 時用格式image:tag指定,
而 repository 的完整格式為:[registry-host]:[port]/[username]/xxx
四、上傳映象到倉庫中
成功會出現上述提示,表示本地的倉庫預設使用的是https進行上傳,那行是latest是重新上傳出現的。
如果你在push映象的時候出現問題,可能是因為我們啟動的registry服務不是安全可信賴的.這個時候我們需要修改docker的配置檔案/etc/default/docker,新增下面的內容: "- - insecure-registry 127.0.0.1:5000", 再重啟docker 服務
五、刪除下載的映象,從本地映象下載。
docker rmi 127.0.0.1:5000/busybox-test 刪除映象
docker pull 從本地映象下載。
docker images 檢視下載成功
最後在宿主機瀏覽器中訪問127.0.0.1:5000/v2/_catalog,出現上傳的映象。
在此路徑下,可以檢視上傳到本地的映象。