docker學習筆記3:鏡像操作(查找和下載)


一、查看本地鏡像

  只有下載后,鏡像才會保存在本地(docker環境所在的主機),通過如下命令可以查看本地已經存在的鏡像。

命令:dokcer images

上面命令列出本地所有已經存在的鏡像,顯示的信息如:

REPOSITORY          TAG                 IMAGE ID            CREATED             VIRTUAL SIZE
ubuntu              latest              ce76de2e871b        8 days ago          188 MB

說明:docker images 命令可帶參數,是個字符串,可以帶通配,只顯示過濾的鏡像。

 

二、鏡像中心

  本地的鏡像是從遠程鏡像中心(Registry)下載到本地的,默認的鏡像中心是docker公司負責運營的docker hub中心。

在遠程鏡像中心,鏡像是保存在倉庫(Repository)中,倉庫存在鏡像中心(Registry)中。

   每個鏡像都有一個唯一的ID號。 一個倉庫(如上面的ubuntu)中有多個鏡像,通過tag標識來區分不同鏡像,一個倉庫中的鏡像通常是同一種類型的鏡像,只是不同版本的區別。換句話說,鏡像時由倉庫名和tag標識來共同決定的。

   docker hub中有兩種類型的鏡像:用戶倉庫(user repository)和頂層倉庫(top-level  repository)。用戶倉庫的鏡像是有docker用戶創建的。頂層倉庫是有docker公司內部管理的。

   用戶倉庫的命名由用戶名和倉庫名兩部分組成(中間用/分隔);而頂層倉庫只有倉庫名,如ubuntu倉庫。

   總結一下,鏡像名稱的標准格式是:  用戶名/倉庫名:Tag名,對於頂層的則沒有用戶名,如果省略tag名,默認為latest.

說明:也可以搭建私服的鏡像中心,供企業內部使用。

 

三、在docker hub中心查找倉庫

通過docker search命令可以查找docker hub上所有公共的可用倉庫。

可以帶一個字符串參數(支持通配),用於查找滿足命名的倉庫。

舉例:docker search mysql

顯示的內容如:

NAME                       DESCRIPTION                                     STARS     OFFICIAL   AUTOMATED
mysql                      MySQL is a widely used, open-source relati...   1872      [OK]       
mysql/mysql-server         Optimized MySQL Server Docker images. Crea...   110                  [OK]
centurylink/mysql          Image containing mysql. Optimized to be li...   38                   [OK]
sameersbn/mysql                                                            31                   [OK]
google/mysql               MySQL server for Google Compute Engine          14                   [OK]
appcontainers/mysql        Centos/Debian/Ubuntu Based Customizable My...   7                    [OK]
...................

返回的每條記錄代表一個鏡像。包含5個字段信息:
1)Name:鏡像的倉庫名。可以看出頂層倉庫只有第一個鏡像是。其它的都是用戶倉庫。

2)Description:倉庫的描述信息

3)Stars:用戶評價,反映一個倉庫受歡迎的程度

4)Offical:是否官方,即是否是頂層倉庫。可以看出,只有第一個鏡像是頂層倉庫。

5)Automated:表示這個鏡像是由docker hub自動構建的。

 

四、下載鏡像

通過docker run方法是創建容器,如果指定的鏡像在本機不存在,則會先去下載鏡像。

可以通過docker pull命令只下載鏡像,不創建容器。

命令: docker pull  [用戶名/]倉庫名[:TAG]

含義: 如果只指定倉庫名,會下載該倉庫下的所有鏡像。如果還指定了TAG值,則會下載指定的鏡像。

對於dokcer run命令,只指定倉庫名,不指定tag時,默認下載的是 latest標識的鏡像。

舉例:

xxx@ubuntu:~$ docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             VIRTUAL SIZE
ubuntu              latest              ce76de2e871b        8 days ago          188 MB
xxx@ubuntu:~$ docker pull mysql
Using default tag: latest
latest: Pulling from library/mysql

73e8d4f6bf84: Pull complete 
040bf8e08425: Pull complete 
86e6c3163927: Pull complete 
68f4b3625ea4: Pull complete 
04f7e78a2c8a: Pull complete 
1bade56c3b6b: Pull complete 
dd6387e14c18: Pull complete 
ca30c0626c9b: Pull complete 
0dc5e226a795: Pull complete 
6c164b0f04cb: Pull complete 
5c74d058f7b5: Pull complete 
0fd3b6e12567: Pull complete 
e8126a9d061e: Pull complete 
d17cffff8039: Pull complete 
1924f4186d05: Pull complete 
14961e5db73a: Pull complete 
Digest: sha256:16de02081c408c41361126aaa718f91693688d39a216a74ac8dab841db050228
Status: Downloaded newer image for mysql:latest
xxx@ubuntu:~$ docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             VIRTUAL SIZE
mysql               latest              14961e5db73a        4 days ago          361.3 MB
ubuntu              latest              ce76de2e871b        8 days ago          188 MB

鏡像下載后,就可以通過docker run命令創建相應的容器了。

 

五、鏡像的復制

一個鏡像是屬於一個倉庫,一個倉庫中有多個鏡像,大家靠tag來區分。

在某些場景下,可能需要把一個已有的鏡像 加入(也就是復制)到別的倉庫中。這時可以用tag命令。具體的語法格式是:

docker tag [OPTIONS] orignIMAGE[:TAG] [REGISTRYHOST/][USERNAME/]newNAME[:TAG]

這個還是挺有用的,比如當創建一個鏡像,命名不適合(倉庫名和TAg標識),這樣相當於改個名,但實際是拷貝一份。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM