Docker映象的常用命令
搜尋映象
可使用docker search
命令搜尋存放在Docker Hub中的映象。
命令格式:
1 |
docker search [OPTIONS] TERM |
引數:
Name, shorthand | Default | Description |
---|---|---|
--automated |
false |
只列出自動構建的映象 |
--filter, -f |
根據指定條件過濾結果 | |
--limit |
25 |
搜尋結果的最大條數 |
--no-trunc |
false |
不截斷輸出,顯示完整的輸出 |
--stars, -s |
0 |
只展示Star不低於該數值的結果 |
示例1:
1 |
docker search java |
執行該命令後,Docker就會在Docker Hub中搜索含有“java”這個關鍵詞的映象倉庫。執行該命令後,可看到類似於如下的表格:
1 2 3 4 5 6 7 |
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:
1 |
docker search -s 10 java |
下載映象[重要]
使用命令docker pull
命令即可從Docker Registry上下載映象。
命令格式:
1 |
docker pull [OPTIONS] NAME[:TAG|@DIGEST] |
引數:
Name, shorthand | Default | Description |
---|---|---|
--all-tags, -a |
false |
下載所有標籤的映象 |
--disable-content-trust |
true |
忽略映象的校驗 |
示例1:
1 |
docker pull java |
執行該命令後,Docker會從Docker Hub中的java倉庫下載最新版本的Java映象。
示例2:
該命令還可指定想要下載的映象標籤以及Docker Registry地址,例如:
1 |
docker pull reg.itmuch.com/java:7 |
這樣就可以從指定的Docker Registry中下載標籤為7的Java映象。
列出映象[重要]
使用docker images
命令即可列出已下載的映象。
執行該命令後,將會看到類似於如下的表格:
1 2 3 |
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:映象大小。
命令格式:
1 |
docker images [OPTIONS] [REPOSITORY[:TAG]] |
引數:
Name, shorthand | Default | Description |
---|---|---|
--all, -a |
false |
列出本地所有的映象(含中間映像層,預設情況下,過濾掉中間映像層) |
--digests |
false |
顯示摘要資訊 |
--filter, -f |
顯示滿足條件的映象 | |
--format |
通過Go語言模板檔案展示映象 | |
--no-trunc |
false |
不截斷輸出,顯示完整的映象資訊 |
--quiet, -q |
false |
只顯示映象ID |
示例:
1 2 3 4 5 |
docker images docker images java docker images java:8 docker images --digests docker images --filter "dangling=true" # 展示虛懸映象 |
刪除本地映象[重要]
使用docker rmi
命令即可刪除指定映象。
命令格式:
1 |
docker rmi [OPTIONS] IMAGE [IMAGE...] |
引數:
Name, shorthand | Default | Description |
---|---|---|
--force, -f |
false |
強制刪除 |
--no-prune |
false |
不移除該映象的過程映象,預設移除 |
例1:刪除指定名稱的映象。
1 |
docker rmi hello-world |
表示刪除hello-world這個映象。
例2:刪除所有映象。
1 |
docker rmi -f $(docker images) |
-f引數表示強制刪除。
儲存映象
使用docker save
即可儲存映象。
命令格式:
1 |
docker save [OPTIONS] IMAGE [IMAGE...] |
引數:
Name, shorthand | Default | Description |
---|---|---|
--output, -o |
Write to a file, instead of STDOUT |
例1:
1 2 |
docker save busybox > busybox.tar docker save --output busybox.tar busybox |
載入映象
使用docer load
命令即可載入映象。
命令格式:
1 |
docker load [OPTIONS] |
引數:
Name, shorthand | Default | Description |
---|---|---|
--input, -i |
從檔案載入而非STDIN | |
--quiet, -q |
false |
靜默載入 |
例1:
1 2 |
docker load < busybox.tar.gz docker load --input fedora.tar |
構建映象[重要]
通過Dockerfile構建映象。
命令格式:
1 |
docker build [OPTIONS] PATH | URL | - |
引數:
Name, shorthand | Default | Description |
---|---|---|
--add-host |
新增自定義從host到IP的對映,格式為(host:ip) | |
--build-arg |
設定構建時的變數 | |
--cache-from |
作為快取源的映象 | |
--cgroup-parent |
容器可選的父cgroup | |
--compress |
false |
使用gzip壓縮構建上下文 |
--cpu-period |
0 |
限制CPU CFS (Completely Fair Scheduler) 週期 |
--cpu-quota |
0 |
限制CPU CFS (Completely Fair Scheduler) 配額 |
--cpu-shares, -c |
0 |
CPU使用權重(相對權重) |
--cpuset-cpus |
指定允許執行的CPU | |
--cpuset-mems |
指定允許執行的記憶體 | |
--disable-content-trust |
true |
忽略校驗 |
--file, -f |
指定Dockerfile的名稱,預設是‘PATH/Dockerfile’ | |
--force-rm |
false |
刪除中間容器 |
--iidfile |
將映象ID寫到檔案中 | |
--isolation |
容器隔離技術 | |
--label |
設定映象使用的元資料 | |
--memory, -m |
0 |
設定記憶體限制 |
--memory-swap |
0 |
設定Swap的最大值為記憶體+swap,如果設定為-1表示不限swap |
--network |
default |
在構建期間設定RUN指令的網路模式 |
--no-cache |
false |
構建映象過程中不使用快取 |
--pull |
false |
總是嘗試去更新映象的新版本 |
--quiet, -q |
false |
靜默模式,構建成功後只輸出鏡像ID |
--rm |
true |
構建成功後立即刪除中間容器 |
--security-opt |
安全選項 | |
--shm-size |
0 |
指定/dev/shm 目錄的大小 |
--squash |
false |
將構建的層壓縮成一個新的層 |
--tag, -t |
設定標籤,格式:name:tag,tag可選 | |
--target |
設定構建時的目標構建階段 | |
--ulimit |
Ulimit 選項 | <