標記本地映象並上傳到映象庫中

拾月_發表於2019-04-26

在之前的文章中我們介紹了docker相關的基礎知識,併成功的建立了相關應用程式的映象(image),同時可以基於相應的映象(image)來執行一個container例項。docker的映象有一個可移植的特性,可移植表示我們可以在其他地方執行它,本篇文章我們主要介紹如何對本地映象進行標記,並上傳到Docker公共映象庫中。

在實際操作之前先讓我們瞭解一些基礎概念:

映象庫:映象庫是映象倉庫的集合,Docker Hub為我們提供了公用的映象庫,大家可以把映象庫理解成我們的SVN或者Github。

映象倉庫:映象庫中包含的是映象倉庫,而映象倉庫是映象的集合,類似於GitHub映象倉庫或者SVN倉庫。

映象庫中的一個賬號可以建立很多映象倉庫,預設情況下,docker CLI使用docker公用的映象倉庫。本篇文章我們主要是講解如何將本地映象上傳到Docker的公用映象庫中,因為它是免費的並且已經預先進行了配置,且提供了很多公用映象可供使用,當然我們也可以設定自己的專用映象庫,以後會專門做一個專題為大家介紹如何建立自己的專用映象庫。

在使用Docker公用映象庫之前我們需要先建立一個Docker ID賬號,並在當前賬號下建立一個自己的映象倉庫,大家可以登入到如下地址進行建立:cloud.docker.com

標記映象

首先我們先執行docker images指令檢視本地映象有哪些,如圖所示,本地有一個名為netcorelinux:v1的映象:

標記本地映象並上傳到映象庫中

通過指令docker tag local-image-name douckerId/repository:tag 來對本地映象進行標記,該命令中tag後面的local-image-name表示的是本地要被標記的映象的名稱 ,後面跟著的dockerId表示在docker hub中註冊的賬戶,repository表示建立的映象倉庫的名稱,冒號後面的tag用來標記該映象在映象倉庫中的名稱,如:

docker tag netcorelinux test/hello-repo:hellonetcorelinux, 該指令的意思是將本地映象netcorelinux標記到test下的hello-repo映象倉庫中,並以hellonetcorelinux進行標記(命名)

執行之後我們再通過docker images指令來檢視,如圖所示:

標記本地映象並上傳到映象庫中

 可以看到我們標記的hellonetcorelinux,接下來我們就要釋出我們標記的映象到我的映象倉庫中。

釋出映象

通過指令docker push dockerId/repository:tag來將我們標記的映象釋出到映象倉庫中,如

docker push test/hello-repo:hellonetcorelinux 該指令的意思是將標記好的名為hellonetcorelinux映象上傳到test下的hello-repo映象倉庫中,執行結果如圖所示:

標記本地映象並上傳到映象庫中

我們可以訪問cloud.docker.com 站點檢視釋出到Docker公共映象庫中的映象,如下圖所示:

標記本地映象並上傳到映象庫中


從Docker公共映象倉庫中拉取映象並執行

我們已經將本地映象釋出到了公用映象庫中,這樣我們就可以在其他環境中拉取映象並執行映象了我們可以通過如下指令從Docker公用映象庫中拉取並執行映象:docker run -d -p 8000:80 --name container-name dockerId/repository:tag,如:

docker run -d -p 5000:80 fromdockerhub test/hello-repo:hellonetcorelinux 該指令表示的意思是基於test下的hello-repo映象倉庫中的hellonetcorelinux映象建立一個名為fromdockerhub的容器例項並執行,將容器的80埠與主機的5000埠進行對映,執行結果如圖所示:

標記本地映象並上傳到映象庫中

我們可以通過指令docker ps -a 檢視當前機器上的容器情況,如圖所示:

標記本地映象並上傳到映象庫中

通過瀏覽器訪問:http://localhost:5000, 我們的應用已經成功執行了起來,如圖所示:

標記本地映象並上傳到映象庫中


注意:不同型別container下build出來的image只能在所對應的型別的container下執行,比如不能在windows container中執行linux container build出來的image,否則會出現error: operating system "windows" cannot be used on this platform 或者error: operating system "Linux" cannot be used on this platform

以上我們便完成了如何標記本地映象並上傳到公共映象倉庫中的介紹,希望對大家的學習能有所幫助,有任何問題都可以給我留言。


上一篇(Docker 容器中執行.net core應用程式)

下一篇(Docker Compose簡介)


相關文章