天天看點

Docker系列教程04-Docker鏡像常用指令

原文: http://www.itmuch.com/docker/04-docker-command-images/ 我們首先來讨論Docker鏡像的常用指令。

搜尋鏡像

可使用

docker search

指令搜尋存放在Docker Hub中的鏡像。

指令格式:

docker search [OPTIONS] TERM
           

參數:

Name, shorthand Default Description

--automated

false

隻列出自動建構的鏡像

--filter, -f

根據指定條件過濾結果

--limit

25

搜尋結果的最大條數

--no-trunc

false

不截斷輸出,顯示完整的輸出

--stars, -s

隻展示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]
           

--all-tags, -a

false

下載下傳所有标簽的鏡像

--disable-content-trust

true

忽略鏡像的校驗
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]]
           

--all, -a

false

列出本地所有的鏡像(含中間映像層,預設情況下,過濾掉中間映像層)

--digests

false

顯示摘要資訊

--filter, -f

顯示滿足條件的鏡像

--format

通過Go語言模闆檔案展示鏡像

--no-trunc

false

不截斷輸出,顯示完整的鏡像資訊

--quiet, -q

false

隻顯示鏡像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...]
           

--force, -f

false

強制删除

--no-prune

false

不移除該鏡像的過程鏡像,預設移除

例1:删除指定名稱的鏡像。

docker rmi hello-world
           

表示删除hello-world這個鏡像。

例2:删除所有鏡像。

docker rmi -f $(docker images)
           

-f參數表示強制删除。

儲存鏡像

docker save

即可儲存鏡像。

docker save [OPTIONS] IMAGE [IMAGE...]
           

--output, -o

Write to a file, instead of STDOUT

例1:

docker save busybox > busybox.tar
docker save --output busybox.tar busybox
           

加載鏡像

docer load

指令即可加載鏡像。

docker load [OPTIONS]
           

--input, -i

從檔案加載而非STDIN

--quiet, -q

false

靜默加載
docker load < busybox.tar.gz
docker load --input fedora.tar
           

建構鏡像[重要]

通過Dockerfile建構鏡像。

docker build [OPTIONS] PATH | URL | -
           

--add-host

添加自定義從host到IP的映射,格式為(host:ip)

--build-arg

設定建構時的變量

--cache-from

作為緩存源的鏡像

--cgroup-parent

容器可選的父cgroup

--compress

false

使用gzip壓縮建構上下文

--cpu-period

限制CPU CFS (Completely Fair Scheduler) 周期

--cpu-quota

限制CPU CFS (Completely Fair Scheduler) 配額

--cpu-shares, -c

CPU使用權重(相對權重)

--cpuset-cpus

指定允許執行的CPU

--cpuset-mems

指定允許執行的記憶體

--disable-content-trust

true

忽略校驗

--file, -f

指定Dockerfile的名稱,預設是‘PATH/Dockerfile’

--force-rm

false

删除中間容器

--iidfile

将鏡像ID寫到檔案中

--isolation

容器隔離技術

--label

設定鏡像使用的中繼資料

--memory, -m

設定記憶體限制

--memory-swap

設定Swap的最大值為記憶體+swap,如果設定為-1表示不限swap

--network

default

在建構期間設定RUN指令的網絡模式

--no-cache

false

建構鏡像過程中不使用緩存

--pull

false

總是嘗試去更新鏡像的新版本

--quiet, -q

false

靜默模式,建構成功後隻輸出鏡像ID

--rm

true

建構成功後立即删除中間容器

--security-opt

安全選項

--shm-size

指定

/dev/shm

目錄的大小

--squash

false

将建構的層壓縮成一個新的層

--tag, -t

設定标簽,格式:name:tag,tag可選

--target

設定建構時的目标建構階段

--ulimit

Ulimit 選項

拓展閱讀

Docker指令:

https://docs.docker.com/engine/reference/commandline/docker/