5-Docker映象相關命令

請叫我longge發表於2020-12-07

#5-Docker映象相關命令

5.1、使用pull獲取映象

1、使用Docker 映象
docker 映象是docker 中三大概念之一,其主要作用是作為啟動容器的模板。

2、獲取映象
	映象是執行容器的模板,官方Docker Hub 倉庫已經提供了許多映象共開發者使用。如果我們需要獲取某個映象則可以去docker 倉庫下載所需的映象。
   
? 下載映象的格式:docker pull [倉庫的URL]/[名稱空間]/[倉庫的名稱]:[版本號] 
[root@wb01 ~]# docker pull nginx:1.17

? 檢視映象資訊:映象主要包括映象檔案、映象tag 以及映象詳細資訊等等。
[root@wb01 ~]# docker images 
REPOSITORY    TAG      IMAGE ID        CREATED             SIZE
nginx         1.17    9beeba249f3e     6 months ago        127MB

? docker images 或 docker image ls [引數]
選項引數:
    -a : 顯示所有的映象(包括臨時映象檔案)
    -q : 只顯示映象ID  
	--digests=true|false:列出映象的數字摘要值(相對於docker images 多了摘要說明(DIGEST)
    --no-trunc :顯示完整的映象資訊(沒有輸入的話只會顯示image id 12位的資訊)
    
?列舉資訊中,可以看到幾個欄位資訊:
    REPOSITORY:倉庫名稱
    TAG:標籤資訊,版本號(latest:表示最新的版本) 
    IMAGE ID:映象ID
    CREATED:時間段
    SIZE:映象檔案的體積
#映象大小資訊只是表示了該映象的邏輯體積大小,實際上由於相同的映象層本地只會儲存一份,物理上佔用的儲存空間會小於各映象邏輯體積之和。

5.2、為映象新增tag-使用inspect-history

5.2.1、為映象新增tag

?為了方便後續工作中使用特定的映象,還可以使用docker tag 命令來為本地的映象新增標籤。	
  docker tag [原映象倉庫url]/[原映象名稱空間]/[原映象倉庫名稱]:[版本號]  [新映象倉庫url]/[新映象名稱空間]/[新映象倉庫名稱]:[版本號]  
            
[root@wb01 ~]#docker tag nginx:1.17 registry.cn-hangzhou.aliyuncs.com/linux_centos7/longge_nginx:v1
[root@wb01 ~]# docker images
REPOSITORY                           TAG                         IMAGE ID          CREATED       SIZE
nginx                               1.17                        9beeba249f3e    6 months ago     127MB
registry.cn-hangzhou.aliyuncs.com/linux_centos7/longge_nginxv1  9beeba249f3e    6 months ago     127MB

5.2.2、使用inspect命令檢視詳細資訊

?使用docker inspect 命令獲取映象的詳細資訊,包括PID、作者、架構等等。
docker inspect 倉庫名稱:標籤/image id
[root@wb01 ~]# docker inspect nginx:1.17

?-f : 類似golang語法類似獲取所需資訊--獲取映象id
[root@wb01 ~]# docker inspect -f '{{ .ID}}' nginx:1.17 
sha256:9beeba249f3ee158d3e495a6ac25c5667ae2de8a43ac2a8bfd2bf687a58c06c9

5.2.3、使用history 命令檢視映象歷史

[root@wb01 ~]# docker history nginx:1.17 
IMAGE               CREATED             CREATED BY                                      SIZE                COMMENT
9beeba249f3e        6 months ago        /bin/sh -c #(nop)  CMD ["nginx" "-g" "daemon…   0B                  
<missing>           6 months ago        /bin/sh -c #(nop)  STOPSIGNAL SIGTERM           0B                  
<missing>           6 months ago        /bin/sh -c #(nop)  EXPOSE 80                    0B                  
<missing>           6 months ago        /bin/sh -c ln -sf /dev/stdout /var/log/nginx…   22B                 
<missing>           6 months ago        /bin/sh -c set -x     && addgroup --system -57.6MB              
<missing>           6 months ago        /bin/sh -c #(nop)  ENV PKG_RELEASE=1~buster     0B                  
<missing>           6 months ago        /bin/sh -c #(nop)  ENV NJS_VERSION=0.3.9        0B                  
<missing>           6 months ago        /bin/sh -c #(nop)  ENV NGINX_VERSION=1.17.10    0B                  
<missing>           6 months ago        /bin/sh -c #(nop)  LABEL maintainer=NGINX Do…   0B                  
<missing>           6 months ago        /bin/sh -c #(nop)  CMD ["bash"]                 0B                  
<missing>           6 months ago        /bin/sh -c #(nop) ADD file:7780c81c33e6cc5b6…   69.2MB  

注意:有些構建資訊過長,可以使用--no-trunc 選項來輸出完整資訊。

5.3、Search搜尋映象

?Search的具體用法:

[root@wb01 ~]# docker search --help 
Usage:	docker search [OPTIONS] TERM
Search the Docker Hub for images

Options:
  -f, --filter filter   Filter output based on conditions provided
      --format string   Pretty-print search using a Go template
      --limit int       Max number of search results (default 25)
      --no-trunc        Don't truncate output

1、docker search [OPTIONS] 映象名字

[root@wb01 ~]# docker search nginx
NAME                               DESCRIPTION                                     STARS               OFFICIAL            AUTOMATED
nginx                              Official build of Nginx.                        14063               [OK] jwilder/nginx-proxy                Automated Nginx reverse proxy for docker con…   1912                [OK] richarvey/nginx-php-fpm            Container running Nginx + PHP-FPM capable of…   795                 [OK] linuxserver/nginx                  An Nginx container, brought to you by LinuxS…   131                       jc21/nginx-proxy-manager           Docker container for managing Nginx proxy ho…   115                       tiangolo/nginx-rtmp                Docker image with Nginx using the nginx-rtmp…   105                 [OK]
bitnami/nginx                      Bitnami nginx Docker Image                      90                  [OK] alfg/nginx-rtmp                    NGINX, nginx-rtmp-module and FFmpeg from sou…   80                                
...顯示部分資訊

2、search命令引數

search [option] keyword。支援的命令選項主要包括:

?-f : 過濾輸出內容
#搜尋官方提供的帶有nginx關鍵字的映象   
[root@wb01 ~]# docker search -f is-official=true nginx
NAME                DESCRIPTION                STARS               OFFICIAL            AUTOMATED
nginx               Official build of Nginx.   14063               [OK]  

#搜尋被收藏超過1000個的並且關鍵詞包括nginx的映象
[root@wb01 ~]# docker search -f stars=1000 nginx
NAME                  DESCRIPTION                                    STARS               OFFICIAL          
nginx                 Official build of Nginx.                        14063               [OK]               
jwilder/nginx-proxy   Automated Nginx reverse proxy for docker con…   1912                [OK]                 
?--limit: 限制輸出結果
[root@wb01 ~]# docker search -f stars=8 --limit 3 nginx
NAME                  DESCRIPTION                                     STARS               OFFICIAL            AUTOMATED
nginx                 Official build of Nginx.                        14063               [OK]                
jwilder/nginx-proxy   Automated Nginx reverse proxy for docker con…   1912                                    [OK]
bitnami/nginx         Bitnami nginx Docker Image                      90                                     

?--no-trunc: 不截斷輸出結果
 [root@wb01 ~]#     docker search -f stars=8 --limit 3 --no-trunc nginx
NAME                  DESCRIPTION                                           STARS               OFFICIAL            AUTOMATED
nginx                 Official build of Nginx.                              14063               [OK]                
jwilder/nginx-proxy   Automated Nginx reverse proxy for docker containers   1912                                    [OK]
bitnami/nginx         Bitnami nginx Docker Image                            90                                      [OK]

?列表引數:
    NAME: 映象倉庫源的名稱
    DESCRIPTION: 映象的描述
    OFFICIAL: 是否docker 官方釋出
    stars: 類似Github 裡面的star,表示點贊、喜歡的意思。
    AUTOMATED: 自動構建。

5.4、刪除和清理映象

在docker 中,刪除映象主要使用rmi 子命令,清理映象主要使用prune子命令。

5.4.1、使用標籤刪除映象

?使用docker rmi 或docker rm image 命令可以刪除映象,
  命令格式為:docker rmi REPOSITORY:tag/IMAGE ID	
    
[root@wb01 ~]# docker images
REPOSITORY                        TAG                 IMAGE ID            CREATED             SIZE
nginx                             1.17                9beeba249f3e        6 months ago        127M
hello-world                       latest              bf756fb1ae65        11 months ago       13.3kB

[root@wb01 ~]# docker rmi hello-world:latest 
Untagged: hello-world:latest
Untagged: hello-world@sha256:e7c70bb24b462baa86c102610182e3efcb12a04854e8c582838d92970a09f323
Deleted: sha256:bf756fb1ae65adf866bd8c456593cd24beb6a0a061dedf42b26a993176745f6b
Deleted: sha256:9c27e219663c25e0f28493790cc0b88bc973ba3b1686355f221c38a36978ac63
#正在使用的映象檔案,如果想要刪除的話需要-f強制刪除即可,(映象檔案就像一個千層餅一樣的一層包裹一層,刪除時會有有多條刪除記錄。)

? -f : 強制刪除一個或者多個映象。  
[root@wb01 ~]# docker rmi -f 9beeba249f3e

?強制刪除所有的映象檔案
[root@wb01 ~]# docker rmi -f $(docker images -qa)

5.4.2、清理映象

使用一段時間之後,docker 會產生很多臨時檔案,以及一些沒有被使用的映象, 我們可以通過docker image prune 命令來進行清理。

?-a:刪除所有無用的映象,不光是臨時映象
[root@wb01 ~]# docker image prune -a
WARNING! This will remove all images without at least one container associated to them.
Are you sure you want to continue? [y/N] 

?-f :強制刪除映象,而不進行提示。

相關文章