原文: http://www.itmuch.com/docker/04-docker-command-images/ 我們首先來讨論Docker鏡像的常用指令。
搜尋鏡像
可使用
docker search
指令搜尋存放在Docker Hub中的鏡像。
指令格式:
docker search [OPTIONS] TERM
參數:
Name, shorthand | Default | Description |
---|---|---|
| | 隻列出自動建構的鏡像 |
| 根據指定條件過濾結果 | |
| | 搜尋結果的最大條數 |
| | 不截斷輸出,顯示完整的輸出 |
| 隻展示Star不低于該數值的結果 |
示例1:
docker search java
執行該指令後,Docker就會在Docker Hub中搜尋含有“java”這個關鍵詞的鏡像倉庫。執行該指令後,可看到類似于如下的表格:
NAME DESCRIPTION STARS OFFICIAL AUTOMATED
java Java is a concurrent, ... 1281 [OK]
anapsix/alpine-java Oracle Java 8 (and 7) ... 190 [OK]
isuper/java-oracle This repository conta ... 48 [OK]
lwieske/java-8 Oracle Java 8 Contain ... 32 [OK]
nimmis/java-centos This is docker images ... 23 [OK]
...
該表格包含五列,含義如下:
① NAME:鏡像倉庫名稱。
② DESCRIPTION:鏡像倉庫描述。
③ STARS:鏡像倉庫收藏數,表示該鏡像倉庫的受歡迎程度,類似于GitHub的Stars。
④ OFFICAL:表示是否為官方倉庫,該列标記為[OK]的鏡像均由各軟體的官方項目組建立和維護。由結果可知,java這個鏡像倉庫是官方倉庫,而其他的倉庫都不是鏡像倉庫。
⑤ AUTOMATED:表示是否是自動建構的鏡像倉庫。
示例2:
docker search -s 10 java
下載下傳鏡像[重要]
使用指令
docker pull
指令即可從Docker Registry上下載下傳鏡像。
docker pull [OPTIONS] NAME[:TAG|@DIGEST]
| | 下載下傳所有标簽的鏡像 |
| | 忽略鏡像的校驗 |
docker pull java
執行該指令後,Docker會從Docker Hub中的java倉庫下載下傳最新版本的Java鏡像。
該指令還可指定想要下載下傳的鏡像标簽以及Docker Registry位址,例如:
docker pull reg.itmuch.com/java:7
這樣就可以從指定的Docker Registry中下載下傳标簽為7的Java鏡像。
列出鏡像[重要]
使用
docker images
指令即可列出已下載下傳的鏡像。
執行該指令後,将會看到類似于如下的表格:
REPOSITORY TAG IMAGE ID CREATED SIZE
java latest 861e95c114d6 4 weeks ago 643.1 MB
hello-world latest c54a2cc56cbb 5 months ago 1.848 kB
該表格包含了5列,含義如下:
① REPOSITORY:鏡像所屬倉庫名稱。
② TAG:鏡像标簽。預設是latest,表示最新。
③ IMAGE ID:鏡像ID,表示鏡像唯一辨別。
④ CREATED:鏡像建立時間。
⑤ SIZE:鏡像大小。
docker images [OPTIONS] [REPOSITORY[:TAG]]
| | 列出本地所有的鏡像(含中間映像層,預設情況下,過濾掉中間映像層) |
| | 顯示摘要資訊 |
| 顯示滿足條件的鏡像 | |
| 通過Go語言模闆檔案展示鏡像 | |
| | 不截斷輸出,顯示完整的鏡像資訊 |
| | 隻顯示鏡像ID |
示例:
docker images
docker images java
docker images java:8
docker images --digests
docker images --filter "dangling=true" # 展示虛懸鏡像
删除本地鏡像[重要]
docker rmi
指令即可删除指定鏡像。
docker rmi [OPTIONS] IMAGE [IMAGE...]
| | 強制删除 |
| | 不移除該鏡像的過程鏡像,預設移除 |
例1:删除指定名稱的鏡像。
docker rmi hello-world
表示删除hello-world這個鏡像。
例2:删除所有鏡像。
docker rmi -f $(docker images)
-f參數表示強制删除。
儲存鏡像
docker save
即可儲存鏡像。
docker save [OPTIONS] IMAGE [IMAGE...]
| Write to a file, instead of STDOUT |
例1:
docker save busybox > busybox.tar
docker save --output busybox.tar busybox
加載鏡像
docer load
指令即可加載鏡像。
docker load [OPTIONS]
| 從檔案加載而非STDIN | |
| | 靜默加載 |
docker load < busybox.tar.gz
docker load --input fedora.tar
建構鏡像[重要]
通過Dockerfile建構鏡像。
docker build [OPTIONS] PATH | URL | -
| 添加自定義從host到IP的映射,格式為(host:ip) | |
| 設定建構時的變量 | |
| 作為緩存源的鏡像 | |
| 容器可選的父cgroup | |
| | 使用gzip壓縮建構上下文 |
| 限制CPU CFS (Completely Fair Scheduler) 周期 | |
| 限制CPU CFS (Completely Fair Scheduler) 配額 | |
| CPU使用權重(相對權重) | |
| 指定允許執行的CPU | |
| 指定允許執行的記憶體 | |
| | 忽略校驗 |
| 指定Dockerfile的名稱,預設是‘PATH/Dockerfile’ | |
| | 删除中間容器 |
| 将鏡像ID寫到檔案中 | |
| 容器隔離技術 | |
| 設定鏡像使用的中繼資料 | |
| 設定記憶體限制 | |
| 設定Swap的最大值為記憶體+swap,如果設定為-1表示不限swap | |
| | 在建構期間設定RUN指令的網絡模式 |
| | 建構鏡像過程中不使用緩存 |
| | 總是嘗試去更新鏡像的新版本 |
| | 靜默模式,建構成功後隻輸出鏡像ID |
| | 建構成功後立即删除中間容器 |
| 安全選項 | |
| 指定 目錄的大小 | |
| | 将建構的層壓縮成一個新的層 |
| 設定标簽,格式:name:tag,tag可選 | |
| 設定建構時的目标建構階段 | |
| Ulimit 選項 |
拓展閱讀
Docker指令:
https://docs.docker.com/engine/reference/commandline/docker/