倉庫(Repository)是集中存放映像檔的地方,分為公開倉庫和私有倉庫。
註冊伺服器(Registry)是存放倉庫的具體伺服器,每個註冊伺服器上可以有多個倉庫,每個倉庫下面又有多個映像檔。
可以透過docker login指令來輸入使用者帳號密碼及信箱做登入,成功後,本地端使用者目錄的.dockercfg檔案將保存使用者的認證資訊,登入成功後即可上傳個人的映像檔。
自動建立(Automated Builds)功能允許使用者透過Docker Hub指定追蹤一個版本管理網站(GitHub、BitBucket)上的專案,一旦專案有了新的git commit,則自動執行建立映像檔,要設定自動建立,有以下步驟:
註冊並登入Docker Hub及版本管理網站(需在GitHub網站中連接帳戶到Docker Hub)
在Docker Hub中設定一個「自動建立」(Create Automated Builds)
選取一個版本管理網站中的專案(須包含Dockerfile)和分支(Branch)或標籤(Tag)
指定包含Dockerfile的目錄和映像檔標籤,按下確定即開始建立。
之後即可在Docker Hub的「Build Details」頁面中查看每次建立的情況。
安裝Docker後,可以透過官方提供的registry映像檔來快速建置一套本地端私有倉庫環境
docker run -d -p 5000:5000 registry
預設情況下,會將倉庫映像檔資料存放在容器的/tmp/registry目錄下。
也可以透過-v參數來將映像檔掛載在本機指定的路徑目錄下,例如下面這個指令會將映像檔放到/opt/data/registry目錄
首先可以先至cmd查看自己的IP,例如我的IP為140.120.182.174,得知IP後,即可先使用docker tag指令將要上傳的映像檔標記為140.120.182.174:5000/test
docker tag ubuntu:140.120.182.174:5000/test
docker images
再使用docker push上傳已經標記好的映像檔
docker push 140.120.182.174:5000/test
此時若發生 [Docker repository server gave HTTP response to HTTPS client] 或 [connection refused] ...等error
可以試著在Docker Desktop-->Settings-->Docker Engine內修改內容,新增加一行:
"insecure-registries": [
"140.120.182.174:5000"
]
即可解決。
再透過 curl http://140.120.182.174:5000/查看140.120.182.174倉庫中的映像檔,即可在外部電腦下載!