這篇文章主要講解了“Docker怎么上傳鏡像至私有倉(cāng)庫(kù)”,文中的講解內(nèi)容簡(jiǎn)單清晰,易于學(xué)習(xí)與理解,下面請(qǐng)大家跟著小編的思路慢慢深入,一起來(lái)研究和學(xué)習(xí)“Docker怎么上傳鏡像至私有倉(cāng)庫(kù)”吧!
成都創(chuàng)新互聯(lián)公司客戶idc服務(wù)中心,提供內(nèi)江服務(wù)器托管、成都服務(wù)器、成都主機(jī)托管、成都雙線服務(wù)器等業(yè)務(wù)的一站式服務(wù)。通過(guò)各地的服務(wù)中心,我們向成都用戶提供優(yōu)質(zhì)廉價(jià)的產(chǎn)品以及開(kāi)放、透明、穩(wěn)定、高性價(jià)比的服務(wù),資深網(wǎng)絡(luò)工程師在機(jī)房提供7*24小時(shí)標(biāo)準(zhǔn)級(jí)技術(shù)保障。
鏡像可以很方便直接 push 到 docker 的公共倉(cāng)庫(kù),就好像 github 一樣,但是我們?cè)陂_(kāi)發(fā)中很多時(shí)候都不想公開(kāi)鏡像文件,這時(shí)就需要搭建 docker 的私有倉(cāng)庫(kù),就好像 gitlab 一樣。
在 構(gòu)建出鏡像后,我們可以部署一個(gè)私有鏡像倉(cāng)庫(kù)用來(lái)存放我們的鏡像。
啟動(dòng)私有 registry
啟動(dòng)一個(gè)私有倉(cāng)庫(kù)也非常簡(jiǎn)單,在服務(wù)器上執(zhí)行命令
復(fù)制代碼 代碼如下:
docker run -d -p 5000:5000 --name="docker-registry" --restart=always -v /root/docker/registry/:/var/lib/registry/ registry
即后臺(tái)啟動(dòng) registry 鏡像構(gòu)建出來(lái)的容器,并命名為 docker-registry
,端口號(hào)映射為 5000
到 5000
。
--restart=always
代表當(dāng)容器因?yàn)槟承┰蛲V箷r(shí),不管退出碼是什么都自動(dòng)重啟。除了 always
還有 on-failure
代表只有退出碼不為 0 時(shí)才重啟,并且接受重啟次數(shù)參數(shù):--restart=on-failture:5
-v
指定將宿主機(jī)的 /root/docker/registry/
目錄掛載到容器的 /var/lib/registry/
目錄。這樣我們不用進(jìn)入容器,在宿主機(jī)上就能訪問(wèn)到容器內(nèi)我們感興趣的目錄了。
為什么是/var/lib/registry/
目錄?
倉(cāng)庫(kù)默認(rèn)存放鏡像等信息在容器的/var/lib/registry/docker
目錄下,可以進(jìn)入該目錄查看已上傳鏡像信息。
執(zhí)行 run
命令成功后使用 docker ps
能看到 registry 服務(wù)已經(jīng)啟動(dòng):
上傳鏡像
要上傳鏡像到私有倉(cāng)庫(kù),需要在鏡像的 tag 上加入倉(cāng)庫(kù)地址:
docker tag express-app 111.111.111.111:5000/sunhengzhe/express-app:v1
為了不與其他鏡像沖突,可以加入命名空間如 sunhengzhe
,另外最好給鏡像打上 tag 如 v1
。
注意倉(cāng)庫(kù)地址沒(méi)有加協(xié)議部分,docker 默認(rèn)的安全策略需要倉(cāng)庫(kù)是支持 https
的,如果服務(wù)器只能使用 http 傳輸,那么直接上傳會(huì)失敗,需要在 docker 客戶端的配置文件中進(jìn)行聲明。
mac 配置
更改完需要 apply & restart
centos 系統(tǒng)
在 /etc/docker/daemon.json
文件中寫(xiě)入:
{ "registry-mirror": [ "https://registry.docker-cn.com" ], "insecure-registries": [ "[私有倉(cāng)庫(kù) ip:port]" ] }
然后重啟 docker
systemctl restart docker
推送鏡像
打完 tag
后使用 push
命令推送即可:
docker push 111.111.111.111:5000/sunhengzhe/express-app:v1
推送失敗
如果出現(xiàn) retrying in 5 seconds
然后上傳失敗的問(wèn)題。可以首先在服務(wù)器上使用 logs
命令查看日志:
docker logs -f docker-registry
-f
代表持續(xù)輸出文件內(nèi)容。
如果出現(xiàn) filesystem: mkdir /var/lib/registry/docker: permission denied
,可能是問(wèn)題,需要在服務(wù)器上對(duì)掛載目錄進(jìn)行處理:
chcon -rt svirt_sandbox_file_t /root/docker/registry/
此示例中即 /root/docker/registry/
。
拉取鏡像
使用 pull
命令即可
docker pull 111.111.111.111:5000/sunhengzhe/express-app:v1
感謝各位的閱讀,以上就是“Docker怎么上傳鏡像至私有倉(cāng)庫(kù)”的內(nèi)容了,經(jīng)過(guò)本文的學(xué)習(xí)后,相信大家對(duì)Docker怎么上傳鏡像至私有倉(cāng)庫(kù)這一問(wèn)題有了更深刻的體會(huì),具體使用情況還需要大家實(shí)踐驗(yàn)證。這里是創(chuàng)新互聯(lián),小編將為大家推送更多相關(guān)知識(shí)點(diǎn)的文章,歡迎關(guān)注!
網(wǎng)頁(yè)標(biāo)題:Docker怎么上傳鏡像至私有倉(cāng)庫(kù)
文章分享:http://vcdvsql.cn/article20/gghico.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站營(yíng)銷(xiāo)、網(wǎng)站改版、App設(shè)計(jì)、網(wǎng)站制作、外貿(mào)建站、軟件開(kāi)發(fā)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)