三分鐘Docker-推送本地鏡像到倉庫

2021-02-24 dotNET知音

在上篇文章中,我們完成了應用程式容器化,把webapi項目構建鏡像並容器化運行。本文將會演示如何把自己構建的鏡像上傳到docker官網的倉庫和自己私有倉庫

本地鏡像推送到官網的registry1.創建倉庫

點擊Docker Desktop圖標->Repositories-》create  

跳轉到官網創建頁面 

2.Docker tag (標記鏡像)、push(推送鏡像) 到倉庫

使用一下命令,推送本地鏡像到倉庫

docker tag local-image:tagname new-repo:tagname
docker push new-repo:tagname

在操作之前執行登錄命令,否則會提示:unauthorized: incorrect username or password

docker login

Username (mingchengnet):
Password:
Login Succeeded

然後執行Tag和push命令

 docker tag aastore.productcatalog.api:dev mingchengnet/aastore:dev
docker push mingchengnet/aastore:dev

docker tag 後面的aastore.productcatalog.api:dev是你要上傳的本地鏡像。mingchengnet(帳號名稱)/aastore(倉庫名稱):dev(起的新鏡像名稱) 成功提示:

The push refers to repository [docker.io/mingchengnet/aastore]
cd7e3f7827e5: Pushed
bf4376f176a3: Pushed
d86ec58d3137: Pushed
8c30868fe23a: Pushed
886801dff0ea: Pushed
49b759454bb2: Pushed
95ef25a32043: Pushed
dev: digest: sha256:109d899344cd6524b32f02f484feaac5382d0dff24cfe55801d645e6e56c3910 size: 1794

推送、並搭建私有的registry1.拉取Docker 官方提供了一個搭建私有倉庫的鏡像 registry,運行容器並暴露埠5050映射埠5000
docker pull registry
docker run -d -p 5050:5000 --restart=always registry

在瀏覽器裡訪問http://127.0.0.1:5050/v2/ 輸出{},表示私有倉庫搭建成功 

2.執行Tag(標記鏡像)和push(上傳鏡像)命令
docker tag aastore.productcatalog.api:dev localhost:5050/aastore.productcatalog.api:v1.0
docker push localhost:5050/aastore.productcatalog.api:v1.0

輸出

v1.0: Pulling from aastore.productcatalog.api
Digest: sha256:109d899344cd6524b32f02f484feaac5382d0dff24cfe55801d645e6e56c3910
Status: Image is up to date for localhost:5050/aastore.productcatalog.api:v1.0
localhost:5050/aastore.productcatalog.api:v1.0

在瀏覽器裡訪問http://127.0.0.1:5050/v2/_catalog,就能看到倉庫中包含鏡像:aastore.productcatalog.api

下篇演示如何運行在k8s中。

相關焦點

  • 發布 Docker 鏡像到 Dockhub 倉庫
    推薦內容:複製文件到正在運行的 Docker 容器中[1]|Youtube(需科學上網)[2]將正在運行的容器保存為本地 Docker 鏡像[3]|Youtube(需科學上網)[4]我們已經在本地建立了一個鏡像,並且這個鏡像已經通過了我們的測試,現在我們就可以將它發布到我們的伺服器上,而要發布到伺服器上創建容器就需要一個存儲這些鏡像的地方
  • 企業級Docker鏡像倉庫Harbor部署與使用
    這時單臺Docker主機上鏡像已無法滿足,項目越來越多,鏡像就越來越多,都放到一臺Docker主機上是不行的,我們需要一個像Git倉庫一樣系統來統一管理鏡像。這裡介紹的是一個企業級鏡像倉庫Harbor,將作為我們容器雲平臺的鏡像倉庫中心。Habor是由VMWare公司開源的容器鏡像倉庫。
  • 自己動手創建 Docker 鏡像並分享到鏡像倉庫,容器引擎的用途越來越廣泛!
    對於Docker安裝普通鏡像來說:就是Docker本身是分層下載鏡像,所以可以提取出公共層鏡像,進行復用Docker鏡像的特點Docker鏡像都是只讀的,當容器啟動時,一個新的可寫層加載到鏡像的頂部這一層就是我們通常說的容器層,容器之下的都叫鏡像層Commit鏡像# 提交本地鏡像  # -a:作者信息
  • Docker 鏡像的備份恢復遷移
    tar 歸檔文件,需要使用時將 tar 包恢復為鏡像即可;登錄 DockerHub 註冊中心,將鏡像推送至 DockerHub 倉庫方便使用;搭建私有鏡像倉庫,將鏡像推送至私有鏡像倉庫方便使用。docker save -o /root/mycentos7.tar mycentos:7鏡像恢復使用 docker load 導入 docker save 命令導出的鏡像歸檔文件。
  • docker鏡像倉庫管理工具crtools
    話不多說,在Docker Hub調整了運營策略後,Github推出了獨立容器鏡像倉庫服務 ghcr.io使用方法docker login ghcr.ioUsername: <github-username>Password: <github-token>
  • 試試去中心化的Docker鏡像倉庫設計思路
    用戶通過 docker push 命令把打包好的鏡像發布到 Docker Registry 鏡像倉庫服務中,其他的用戶通過 docker pull 從鏡像倉庫中獲取鏡像,並由 Docker Engine 啟動 Docker 實例。Docker Registry 鏡像倉庫,是一種集中式存儲、應用無狀態、節點可擴展的 HTTP 公共服務。
  • 巧用Docker鏡像倉庫Harbor部署私有Mirror服務
    由於我們配置認證服務使用的是http,Docker認為是不安全的,要使用我們部署的鏡像倉庫,需要配置本地docker,修改配置文件(/etc/default/docker)為:DOCKER_OPTS="$DOCKER_OPTS --insecure-registry 42.62.x.x"其中42.62.x.x是我們部署Harbor的地址,即hostname
  • Harbor企業級私有Docker鏡像倉庫部署
    Harbor介紹與安裝部署,並實現通過http和https協議【自籤發SSL證書】訪問,客戶端如何通過Harbor鏡像倉庫實現鏡像的上傳
  • 【Docker】系列教程01-使用Docker鏡像
    、容器和倉庫。0.9版本的鏡像是一樣的,都是兩周前的版本,然而1.0的鏡像是一分鐘以前的。2、載入鏡像可使用docker load將導出的tar文件再次導入到本地鏡像庫。語法格式如下:7、上傳鏡像使用docker push命令默認將鏡像上傳到Docker Hub官方倉庫(需要登錄)。命令格式如下:
  • Docker - 私有倉庫Registry
    私有倉庫: 在本地(區域網)搭建的一個類似公共倉庫的東西,我們可以將鏡像提交到私有倉庫中,供區域網內的其它人拉取使用。
  • 使用Gradle構建SpringBoot項目Docker鏡像
    使用Gradle快速構建SpringBoot項目Docker鏡像,將鏡像推送到阿里雲遠程鏡像倉庫。
  • 10.Docker容器鏡像Registry倉庫安全構建與GC回收
    答:我認為主要是以下幾個方面的影響1.存儲空間有限2.上傳/拉取速度有限3.企業內部敏感開發項目(如果是您肯定不會上傳到別人的伺服器中)4.免費開源反之使用Registey好處:鏡像存儲位置由您掌握全面管理控制自己的鏡像鏡像存儲和分配緊密集成到您的內部開發流程Registry 版本說明
  • Docker鏡像
    Docker 鏡像是一個特殊的文件系統,除了提供容器運行時所需的程序、庫、資 源、配置等文件外,還包含了一些為運行時準備的一些配置參數(如匿名卷、環境 變量、用戶等)。鏡像不包含任何動態數據,其內容在構建之後也不會被改變。Docker運行容器前需要本地存在對應的鏡像。
  • 【超全教程】SpringBoot 2.3.x 分層構建 Docker 鏡像實踐
    ,在執行」鏡像推送」、」鏡像拉取」操作時都能觀察到其的好處。鏡像緩在鏡像推送的體現: 如鏡像推送時候,也是將鏡像整體構成的中間層鏡像並行推送到鏡像倉庫,如果鏡像倉庫中已經存某個中間層鏡像,那麼推送過程就不會再次將該層鏡像推送到鏡像倉庫,而是將倉庫中並不存在中間層鏡像推送到其中。
  • 使用 Nexus3鏡像搭設私有倉庫(Bower 、Docker、Maven、npm、NuGet、Yum、PyPI)
    Nexus 私有倉庫Nexus 是一個強大的工具倉庫管理器,它極大地簡化了本地內部倉庫的維護和外部倉庫的訪問。 Nexus 支持管理 Bower 、Docker、Maven、npm、NuGet、Yum、PyPI 等工具包。最新版本的 Nexus3.x 全面支持 Docker 的私有鏡像存儲。
  • 進階 | 使用 Docker Harbor 部署私有倉庫
    除了把鏡像上傳到 Docker Hub 私有庫和用 Registry 搭建私有鏡像倉庫外,我們還可以用 Docker Harbor 部署私有倉庫
  • 基於 Harbor 搭建 Docker 私有鏡像倉庫
    //查看docker運行情況docker -v //查看版本信息修改 Docker 配置文件 /etc/default/docker 如下:DOCKER_OPTS="--registry-mirror=http://aad0405c.m.daocloud.io" //換成國內的鏡像加速源,不然拉取鏡像簡直龜速,不想在吐槽了
  • Maven構建Docker鏡像
    SpringBoot應構建Docker鏡像 本文主要介紹使用Maven將SpringBoot應用打包成Docker鏡像,並上傳到私有鏡像倉庫Docker Registry.鏡像倉庫Docker Registry的搭建 1.Pull Registry鏡像docker pull registry:22.鏡像倉庫的容器實例docker run -d -p 5000:5000 --restart=always --name registry
  • 一文學會 Docker 鏡像!
    鏡像是容器在本地運行的基礎,Dokcer運行容器前需要本地存在對應的鏡像,如果不存在對應的鏡像,Docker 會先從默認的鏡像倉庫下載(如果用戶不希望Docker從默認的鏡像倉庫下載鏡像的話,可以使用自定義鏡像倉庫)。這篇文章將講解鏡像的拉取、查看鏡像信息、搜索鏡像、刪除鏡像和鏡像的導入導出。
  • RHEL7安裝Docker與修改鏡像倉庫源
    Docker 是一個開源的應用容器引擎,讓開發者可以打包他們的應用以及依賴包到一個可移植的鏡像中,然後發布到任何流行的 Linux或Windows