您好,登錄后才能下訂單哦!
本篇內容介紹了“Docker的鏡像倉庫怎么創建”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!
Registry是Docker公司的一項創新,它提供了存放鏡像的倉庫服務。在構建好鏡像后,我們通常會將鏡像上傳到Registry服務器上進行保存。這樣可以保證不會因本機故障而導致鏡像丟失,同時,其他機器也能很方便地通過網絡方式下載。
Docker Hub即為Docker官方的Registry服務器 。我們總是習慣將Registry稱為倉庫,但事實上兩者并不完全等同。它們之間的關系如下圖所示,在Registry中可以有多個倉庫,每個倉庫存儲同名的鏡像,而鏡像之間通過Tag進行版本區分。
Docker客戶端默認使用Docker Hub拉取鏡像,在Docker Hub上有著數量眾多的倉庫,其中就有Docker官方提供的公共倉庫。在官方倉庫中存儲了海量的應用鏡像,這些鏡像都是經過官方的篩選和審查,具有較高的安全性,應該作為生產使用的首選項。Docker Hub具有與GitHub相同的概念,Stars代表著鏡像受歡迎程度,通常優先下載Stars數量多的鏡像。
除了使用官方倉庫,我們也可以在Docker Hub上面創建自己的個人倉庫,用于存放定制化的鏡像。
操作方法如下:
新用戶需要使用自己的郵箱地址注冊賬號,點擊Register按鍵后開始注冊。
使用賬號登錄系統后,我們就可以來創建自己的倉庫。倉庫分為兩類,一類為公共倉庫,一類為私有倉庫 ,公共倉庫屬于開放性倉庫,用戶不需要任何驗證即可下載鏡像,而私有倉庫需要具有相關權限的賬號才能下載。免費用戶目前在Docker Hub只能創建一個私有倉庫,公共倉庫則沒有限制。
選擇“Repositories“菜單,然后點擊”Create Repository”創建用戶,此處創建一個公共倉庫,名稱為myapp,前面部分為我們的在Dcoker Hub的專屬名稱空間。
點擊“Create” 創建完成后,我們可以來試著上傳鏡像了。
在前面構建鏡像時,我們配置了鏡像名稱,如:myapp:1.0。如果只在本機使用的話,對于名稱格式并沒有特別要求。但如果要將鏡像上傳或從倉庫下載的話,那么必須使用如下的名稱格式 :
Registry Address/Namespace/Repository:Tag
Registry Address:指向Registry服務器的地址 ,當鏡像未設置該項時,則默認使用Docker Hub的地址。
Namespace:Registry中唯一的空間地址,可以用于區分不同用戶或項目。默認使用Docker官方的空間地址。
Repository:倉庫名稱,同一個應用的鏡像倉庫名相同,通過不同的tag來標記。
Tag:用于標記不同的鏡像版本。
現在,我們按照上面的格式來修改前面創建的鏡像myapp:1.0,命令格式為:docker [image] tag +<Source_image:Tag> + <Target_image:Tag>。
$ docker tag myapp:1.0 alex990/myapp:1.0
注釋:由于Docker Hub地址為默認,故此處不需要增加,如果是其他第三方Registry,則需要在前面加上對應的地址。
docker tag命令并不會對原有鏡像做修改,只會將新的tag 映射到該鏡像。我們可以看到,新鏡像的IMAGE ID與原鏡像的相同,證明都是屬于同一個鏡像文件。
$ docker image ls REPOSITORY TAG IMAGE ID CREATED SIZE alex990/myapp 1.0 6c1160b01988 20 hours ago 43.2MB myapp 1.0 6c1160b01988 20 hours ago 43.2MB
運行docker login,并按提示輸入Docker Hub注冊的賬號信息,完成驗證。
$ docker login Login with your Docker ID to push and pull images from Docker Hub. If you don't have a Docker ID, head over to https://hub.docker.com to create one. Username: alex990 Password: Login Succeeded
然后,我們通過docker [image] push 命令上傳鏡像到倉庫,如下:
$ docker push alex990/myapp:1.0 The push refers to repository [docker.io/alex990/myapp] 7a965a3a67a7: Mounted from linsr2018/myapp f604d2d04ecc: Mounted from linsr2018/myapp 9b999b9e5af8: Mounted from linsr2018/myapp 675233026df0: Mounted from linsr2018/myapp ddb2d7cdfff3: Mounted from linsr2018/myapp 1965cfbef2ab: Mounted from linsr2018/myapp 8d3ac3489996: Mounted from linsr2018/myapp 1.0: digest: sha256:04f75f3422e55affbdf7f14f0a2e5784d09d7774d9f7f695b412b065cdb484c3 size: 1782
上傳完成后,登錄Docker Hub可看到鏡像已存在。現在,我們可以到其他機器上進行下載使用了。
“Docker的鏡像倉庫怎么創建”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識可以關注億速云網站,小編將為大家輸出更多高質量的實用文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。