1. 程式人生 > >Docker鏡像操作命令

Docker鏡像操作命令

auth templates file 嘗試 指向 Dokcer 鏡像源 url download

一、使用Docker鏡像

1. 獲取鏡像

可以使用docker pull命令直接從Docker Hub鏡像源來下載鏡像。該命令的格式為docker pull NAME[:TAG]。其中,NAME是鏡像倉庫的名稱(用來區分鏡像),TAG是鏡像的標簽(往往用來表示版本信息)。通常情況下,描述一個鏡像需要包括“名稱+標簽”信息。

例如,獲取一個Ubuntu 18.10系統的基礎鏡像可以使用如下命令:

$ docker pull ubuntu:18.10

對於Docker鏡像來說,如果不顯式指定TAG,則默認會選擇latest標簽,這會下載倉庫中最新版本的鏡像。

如果從非官方的倉庫下載,則需要在倉庫名稱前指定完整的倉庫地址。例如從網易蜂巢的鏡像源來下載ubuntu:18.04鏡像,可以使用如下命令,此時下載的鏡像名稱為hub.c.163.com/public/ubuntu:18.04:

$ docker pull hub.c.163.com/public/ubuntu:18.04

2. 查詢鏡像信息

  (1) 使用images命令列出鏡像

$ docker images

  (2) 使用tag命令添加鏡像標簽

  它們實際指向同一個鏡像文件,只是別名不同而已

$ docker tag ubuntu:latest myubuntu:latest

  (3) 使用inspect命令查看詳細信息

$ docker inspect ubuntu:18.10

  如果只要其中一項內容時,可以使用參數-f來指定,例如,獲取鏡像的Architecture:

$ docker inspect -f {{.Architecture"}} ubuntu:18.10

  (4) 使用history命令查看鏡像歷史,該命令將列出各層的創建信息

$ docker history ubuntu:18.04

3. 搜尋鏡像

 使用docker search命令可以搜索遠端倉庫中共享的鏡像,默認搜索官方倉庫中的鏡像。用法為docker search TERM,支持的參數主要包括:

  --automated=true|false:僅顯示自動創建的鏡像,默認為否;

  --no-trunc=true|false:輸出信息不截斷顯示,默認為否;

  -s,--stars=X:指定僅顯示評價為指定星級以上的鏡像,默認為0,即輸出所有鏡像。

  例如,搜索所有自動創建的評價為3以上的帶nginx關鍵字的鏡像:

$ docker search --automated -s 3 nginx

4. 刪除鏡像

  (1) 使用標簽刪除鏡像

  使用docker rmi命令可以刪除鏡像,命令格式為docker rmi IMAGE [IMAGE ...],其中IMAGE可以為標簽或ID。

$ docker rmi ubuntu:latest

  當同一個鏡像擁有多個標簽的時候,docker rmi命令只是刪除該鏡像多個標簽中的指定標簽而已,並不影響鏡像文件。當鏡像中剩下一個標簽的時候要小心,此時再使用docker rmi命令會徹底刪除鏡像。

  (2) 使用鏡像ID刪除鏡像

  當使用dokcer rmi命令,並且後面跟上鏡像的ID(也可以是能進行區分的部分ID串前綴)時,會先嘗試刪除所有指向該鏡像的標簽,然後刪除該鏡像文件本身。當有該鏡像創建的容器存在時,鏡像文件默認是無法被刪除的。

$ docker rmi 8f

  如果要想強行刪除鏡像,可以使用-f參數

$ docker rmi -f ubuntu:18.04

5. 創建鏡像

  創建鏡像有三種方法:基於已有鏡像的容器創建、基於本地模板導入、基於Dockerfile創建。

  (1) 基於已有鏡像的容器創建

  該方法主要是使用docker commit命令。命令格式為docker commit [OPTIONS] CONTAINER [REPOSITORY[:TAG]],主要選項包括:

    -a,--author="":作息信息;

    -c,--change=[]:提交的時候執行Dockerfile指令,包括CMD|ENTRYPOINT|ENV|EXPOSE|LABEL|ONBUILD|USER|VOLUME|WORKDIR等;

    -m,--message=“”:提交信息;

    -p,--pause=true:提交時暫停容器運行

$ docker commit -m "Added a new file" -a "Docker Newbee" a925cb40b3f0 test:0.1

  (2) 基於本地模板導入

  用戶也可以直接從一個操作系統模板文件導入一個鏡像,主要使用docker import命令。命令格式為docker import [OPTIONS] file|URL | - [REPOSITORY[:TAG]]。

  要直接導入一個鏡像,可以使用OpenVZ提供的模板來創建,或者用其他導出的鏡像模板來創建。OPENVZ模板的下載地址為http://openvz.org/Download/templates/precreated。

$ cat ubuntu-14.04-x86_64-minimal.tar.gz | docker import - ubuntu:14.04

6. 存出和載入鏡像

  (1) 存出鏡像,docker save

$ docker save -o ubuntu_14.04.tar ubuntu:14.04

  (2) 載入鏡像,docker load,以下兩種寫法均可

$ docker load --input ubuntu_14.04.tar
$ docker load < ubuntu_14.04.tar

7. 上傳鏡像

使用docker push命令上傳鏡像到倉庫,默認上傳到Docker hub官方倉庫。

$ docker push NAME[:TAG] | [REGISTRY_HOST[:REGISTRY_RORT]/]NAME[:TAG]

第一次上傳時,會提示輸入登錄信息或進行註冊。

Docker鏡像操作命令