Docker鏡像操作命令
一、使用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鏡像操作命令