當(dāng)我們?nèi)粘J褂?Docker 時(shí),可能會(huì)遇到 Docker 倉庫容量限制的問題。這意味著我們無法將鏡像推送到 Docker 倉庫中,因?yàn)閭}庫已經(jīng)達(dá)到了容量限制。
$ docker push my-image:latest The push refers to repository [docker.io/library/my-image] f9128f9b0d5a: Preparing 5f70bf18a086: Preparing no basic auth credentials
上述錯(cuò)誤提示表明推送被拒絕,因?yàn)閭}庫已滿。
那么如何解決這個(gè)容量限制呢?
一種解決方法是增加倉庫的存儲(chǔ)空間。對于 Docker 官方倉庫 Docker Hub,我們可以升級(jí)到付費(fèi)計(jì)劃,增加更多的存儲(chǔ)空間。
$ docker login $ docker push my-image:latest
登錄 Docker Hub 后,我們可以嘗試再次推送鏡像并應(yīng)該會(huì)成功。
但如果你不想升級(jí)付費(fèi)計(jì)劃,又該怎么辦呢?另一種方法是使用 Docker Registry,將鏡像存儲(chǔ)在自己的 Registry 倉庫中。Docker Registry 是一個(gè)開源的私有 Docker 倉庫,可以在本地網(wǎng)絡(luò)中搭建 Docker 倉庫。
通過搭建自己的 Docker Registry 倉庫,我們可以更好地掌控自己的 Docker 鏡像,并且不會(huì)受到 Docker Hub 的容量限制。
$ docker tag my-image localhost:5000/my-image $ docker push localhost:5000/my-image
以上命令將鏡像標(biāo)記為 localhost:5000/my-image,并推送到本地的 Registry 中。
綜上所述,當(dāng)我們遇到 Docker 倉庫容量限制時(shí),有兩種解決方法:增加 Docker Hub 的存儲(chǔ)空間或者搭建自己的 Docker Registry 倉庫。