1. 程式人生 > >3-3.2 檢視映象資訊

3-3.2 檢視映象資訊

使用 docker images 命令列出本地主機已有的映象。比如:

[[email protected] ~] docker images
REPOSITORY                                    TAG                 IMAGE ID            CREATED             SIZE
docker.io/busybox                             latest              22c2dd5ee85d        7 weeks ago         1.16 MB

列表包含了倉庫名(REPOSITORY)、標籤(TAG)、映象 ID(IMAGE ID)、建立時間(CREATED)以及所佔用的空間(SIZE)。其中映象ID是進行的唯一標識。

一個倉庫有多個tag,可以使用 docker tag 為本地映象新增新標籤。例如為 docker.io/busybox:latest 新增新標籤:

docker tag SOURCE_IMAGE[:TAG] TARGET_IMAGE[:TAG]
docker tag docker.io/busybox:latest test/busybox:latest

在使用 docker images 

檢視:

[[email protected] ~]docker images
REPOSITORY                          TAG                 IMAGE ID            CREATED             SIZE
docker.io/busybox                   latest              22c2dd5ee85d        7 weeks ago         1.16 MB
test/busybox                        latest              22c2dd5ee85d        7 weeks ago         1.16 MB

以上不同標籤的映象ID是完全一致的,說明是指向了同一個映象檔案,只是別名不同,標籤起到引用或快捷鍵的作用。

使用 docker inspect 檢視映象的詳細資訊。

inspect 命令用於以JSON格式顯示容器與映象的詳細資訊

docker inspect <選項><容器或映象名稱,id>

若是想檢視某一項內容,可以使用 -f 引數指定,如獲取映象的ContainerConfig資訊:

docker inspect -f "{{.ContainerConfig.Hostname}}" docker.io/busybox

另:如果從容器資訊中獲取特定部分,並按照所希望的格式顯示:

$ docker run -it -d --name hello -p 8000:80 -p 8080:8080 docker.io/centos /bin/bash
$ docker inspect -f '{{range $p, $conf := .NetworkSettings.Ports}} {{$p}} -> {{(index $conf 0).HostPort}} {{end}}' hello
80/tcp -> 8000  8080/tcp -> 8080

此處使用 {{range $p, $conf := .NetworkSettings.Ports}} 迴圈訪問 .NetworkSettings.Ports 的值,並代入 $p $conf。然後輸出$p,並將$conf陣列的第一項 (index $conf 0) 的 .HostPort 輸出。
另:.NetworkSettings.Ports 是一個map型別資料結構:

 map[80/tcp:[{0.0.0.0 8000}] 8080/tcp:[{0.0.0.0 8080}]]