標記本地鏡像並上傳到鏡像庫中

在以前的文章中咱們介紹了docker相關的基礎知識,併成功的建立了相關應用程序的鏡像(image),同時能夠基於相應的鏡像(image)來運行一個container實例。docker的鏡像有一個可移植的特性,可移植表示咱們能夠在其餘地方運行它,本篇文章咱們主要介紹如何對本地鏡像進行標記,並上傳到Docker公共鏡像庫中。linux

在實際操做以前先讓咱們瞭解一些基礎概念:docker

鏡像庫:鏡像庫是鏡像倉庫的集合,Docker Hub爲咱們提供了公用的鏡像庫,你們能夠把鏡像庫理解成咱們的SVN或者Github。windows

鏡像倉庫:鏡像庫中包含的是鏡像倉庫,而鏡像倉庫是鏡像的集合,相似於GitHub鏡像倉庫或者SVN倉庫。瀏覽器

鏡像庫中的一個帳號能夠建立不少鏡像倉庫,默認狀況下,docker CLI使用docker公用的鏡像倉庫。本篇文章咱們主要是講解如何將本地鏡像上傳到Docker的公用鏡像庫中,由於它是免費的而且已經預先進行了配置,且提供了不少公用鏡像可供使用,固然咱們也能夠設置本身的專用鏡像庫,之後會專門作一個專題爲你們介紹如何建立本身的專用鏡像庫。post

在使用Docker公用鏡像庫以前咱們須要先建立一個Docker ID帳號,並在當前帳號下建立一個本身的鏡像倉庫,你們能夠登陸到以下地址進行建立:cloud.docker.com學習

標記鏡像

首先咱們先執行docker images指令查看本地鏡像有哪些,如圖所示,本地有一個名爲netcorelinux:v1的鏡像:ui


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

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

執行以後咱們再經過docker images指令來查看,如圖所示:3d


 能夠看到咱們標記的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簡介)

相關文章
相關標籤/搜索