溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

Docker怎么上傳鏡像至私有倉庫

發(fā)布時間:2022-03-24 17:15:24 來源:億速云 閱讀:1429 作者:iii 欄目:web開發(fā)

這篇文章主要講解了“Docker怎么上傳鏡像至私有倉庫”,文中的講解內(nèi)容簡單清晰,易于學(xué)習(xí)與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學(xué)習(xí)“Docker怎么上傳鏡像至私有倉庫”吧!

鏡像可以很方便直接 push 到 docker 的公共倉庫,就好像 github 一樣,但是我們在開發(fā)中很多時候都不想公開鏡像文件,這時就需要搭建 docker 的私有倉庫,就好像 gitlab 一樣。

在  構(gòu)建出鏡像后,我們可以部署一個私有鏡像倉庫用來存放我們的鏡像。

啟動私有 registry

啟動一個私有倉庫也非常簡單,在服務(wù)器上執(zhí)行命令

復(fù)制代碼 代碼如下:

docker run -d -p 5000:5000 --name="docker-registry" --restart=always -v /root/docker/registry/:/var/lib/registry/ registry

即后臺啟動 registry 鏡像構(gòu)建出來的容器,并命名為 docker-registry,端口號映射為 5000 到 5000。

--restart=always 代表當(dāng)容器因為某些原因停止時,不管退出碼是什么都自動重啟。除了 always 還有 on-failure 代表只有退出碼不為 0 時才重啟,并且接受重啟次數(shù)參數(shù):--restart=on-failture:5

-v 指定將宿主機的 /root/docker/registry/ 目錄掛載到容器的 /var/lib/registry/ 目錄。這樣我們不用進入容器,在宿主機上就能訪問到容器內(nèi)我們感興趣的目錄了。

為什么是 /var/lib/registry/ 目錄?
倉庫默認存放鏡像等信息在容器的 /var/lib/registry/docker 目錄下,可以進入該目錄查看已上傳鏡像信息。

Docker怎么上傳鏡像至私有倉庫

執(zhí)行 run 命令成功后使用 docker ps 能看到 registry 服務(wù)已經(jīng)啟動:

Docker怎么上傳鏡像至私有倉庫

上傳鏡像

要上傳鏡像到私有倉庫,需要在鏡像的 tag 上加入倉庫地址:

docker tag express-app 111.111.111.111:5000/sunhengzhe/express-app:v1

為了不與其他鏡像沖突,可以加入命名空間如 sunhengzhe,另外最好給鏡像打上 tag 如 v1

注意倉庫地址沒有加協(xié)議部分,docker 默認的安全策略需要倉庫是支持 https 的,如果服務(wù)器只能使用 http 傳輸,那么直接上傳會失敗,需要在 docker 客戶端的配置文件中進行聲明。

mac 配置

Docker怎么上傳鏡像至私有倉庫

Docker怎么上傳鏡像至私有倉庫

更改完需要 apply & restart

centos 系統(tǒng)

在 /etc/docker/daemon.json 文件中寫入:

{
 "registry-mirror": [
  "https://registry.docker-cn.com"
 ],
 "insecure-registries": [
  "[私有倉庫 ip:port]"
 ]
}

然后重啟 docker

systemctl restart docker

推送鏡像

打完 tag 后使用 push 命令推送即可:

docker push 111.111.111.111:5000/sunhengzhe/express-app:v1

Docker怎么上傳鏡像至私有倉庫

推送失敗

如果出現(xiàn) retrying in 5 seconds 然后上傳失敗的問題??梢允紫仍诜?wù)器上使用 logs 命令查看日志:

docker logs -f docker-registry

-f 代表持續(xù)輸出文件內(nèi)容。

如果出現(xiàn) filesystem: mkdir /var/lib/registry/docker: permission denied,可能是問題,需要在服務(wù)器上對掛載目錄進行處理:

chcon -rt svirt_sandbox_file_t /root/docker/registry/

此示例中即 /root/docker/registry/。

Docker怎么上傳鏡像至私有倉庫

拉取鏡像

使用 pull 命令即可

docker pull 111.111.111.111:5000/sunhengzhe/express-app:v1

感謝各位的閱讀,以上就是“Docker怎么上傳鏡像至私有倉庫”的內(nèi)容了,經(jīng)過本文的學(xué)習(xí)后,相信大家對Docker怎么上傳鏡像至私有倉庫這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關(guān)知識點的文章,歡迎關(guān)注!

向AI問一下細節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI