濮阳杆衣贸易有限公司

主頁(yè) > 知識(shí)庫(kù) > Docker上傳鏡像至私有倉(cāng)庫(kù)的方法示例

Docker上傳鏡像至私有倉(cāng)庫(kù)的方法示例

熱門(mén)標(biāo)簽:菏澤crm外呼系統(tǒng)價(jià)格 百應(yīng)電銷機(jī)器人靠譜嗎 申請(qǐng)400電話號(hào)碼多少錢 遼寧電銷平臺(tái)外呼系統(tǒng)軟件 如何在各種地圖標(biāo)注自己的地址 營(yíng)銷電銷機(jī)器人招商 信陽(yáng)銷售外呼系統(tǒng)招商 coreldraw地圖標(biāo)注 物超所值的400電話申請(qǐng)

鏡像可以很方便直接 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)映射為 50005000

--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,可能是一個(gè) selinux 問(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

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

標(biāo)簽:廈門(mén) 玉樹(shù) 江西 內(nèi)江 瀘州 泰安 江門(mén) 湖北

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《Docker上傳鏡像至私有倉(cāng)庫(kù)的方法示例》,本文關(guān)鍵詞  Docker,上傳,鏡像,至,私有,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問(wèn)題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《Docker上傳鏡像至私有倉(cāng)庫(kù)的方法示例》相關(guān)的同類信息!
  • 本頁(yè)收集關(guān)于Docker上傳鏡像至私有倉(cāng)庫(kù)的方法示例的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    上思县| 平山县| 新竹市| 清新县| 沿河| 平邑县| 久治县| 赣州市| 尼玛县| 怀来县| 上林县| 阿克陶县| 开封县| 榆林市| 岳普湖县| 鹤庆县| 贵定县| 稷山县| 法库县| 四川省| 大埔区| 太康县| 喀喇沁旗| 博客| 怀集县| 晋城| 南昌市| 亚东县| 平利县| 迁安市| 嘉义市| 临夏县| 崇信县| 仙居县| 固镇县| 日喀则市| 同仁县| 叶城县| 清丰县| 连城县| 渝北区|