Ubuntu16.04Docker查看和删除镜像

什么是Docker的镜像

  • 容器的基石
  • 层叠的只读文件系统
  • 联合加载
graph LR
bootfs-->rootfs
rootfs-->add-emacs
add-emacs-->add-apache

Docker镜像存储的位置

Root Dir: /var/lib/docker/aufs

eggyer@ubuntu:/usr/local$ docker info
Containers: 11
Images: 6
Server Version: 1.9.1
Storage Driver: aufs
 Root Dir: /var/lib/docker/aufs
 Backing Filesystem: extfs
 Dirs: 28
 Dirperm1 Supported: true
Execution Driver: native-0.2
Logging Driver: json-file
Kernel Version: 4.4.0-47-generic
Operating System: Ubuntu 16.04.1 LTS (containerized)
CPUs: 4
Total Memory: 3.842 GiB
Name: ubuntu
ID: WBMI:TD6B:PRUN:XWSX:5RVV:QUYO:5S27:W74L:MQ3W:YDB7:JXPL:NR5X
WARNING: No swap limit support
eggyer@ubuntu:/usr/local$ sudo ls -l /var/lib/docker/aufs

drwxr-xr-x 30 root root 4096 1125 12:41 diff
drwxr-xr-x  2 root root 4096 1125 12:41 layers
drwxr-xr-x 30 root root 4096 1125 12:41 mnt

查看mnt中的文件

eggyer@ubuntu:/usr/local$ sudo ls -l /var/lib/docker/aufs/mnt
总用量 112
drwxr-xr-x 2 root root 4096 1125 10:47 0409e42a2dd26d643bc9d3b7e0cc6642cd4d690f5431d3633ca5ba14126ad633
drwxr-xr-x 2 root root 4096 1125 10:47 0409e42a2dd26d643bc9d3b7e0cc6642cd4d690f5431d3633ca5ba14126ad633-init
drwxr-xr-x 2 root root 4096 1125 02:36 0d2ba69dbe3ebda7e9473d1db0f49e98115888586f10761709c02d8cca1d702f
drwxr-xr-x 2 root root 4096 1125 11:58 142b9f902b69f1f05f971977018266074587ed11ac953f92a2aaf467d3ad140f
drwxr-xr-x 2 root root 4096 1125 11:58 142b9f902b69f1f05f971977018266074587ed11ac953f92a2aaf467d3ad140f-init
drwxr-xr-x 2 root root 4096 1125 10:38 29a7330714d833270e0c6e0a580e9374974c47db8e54324ee62a9f15c69da103
drwxr-xr-x 2 root root 4096 1125 10:38 29a7330714d833270e0c6e0a580e9374974c47db8e54324ee62a9f15c69da103-init
drwxr-xr-x 2 root root 4096 1125 02:36 2f5519d4ff74257f28f7c2099c09998fc75193ac8df22543d3d2263934da0992
drwxr-xr-x 2 root root 4096 1125 12:18 327d5a30f1868441afa84ef2d662231e81208de400ddcf7627d3d716a5544b23
drwxr-xr-x 2 root root 4096 1125 12:18 327d5a30f1868441afa84ef2d662231e81208de400ddcf7627d3d716a5544b23-init
drwxr-xr-x 2 root root 4096 1125 12:41 3b1e8b137e4ef0419086d79fd1018c20e9c4d7269c74fb235d882f2484677e51
drwxr-xr-x 2 root root 4096 1125 12:41 3b1e8b137e4ef0419086d79fd1018c20e9c4d7269c74fb235d882f2484677e51-init
drwxr-xr-x 2 root root 4096 1125 02:36 594949f005feb4a4c43f5e6773bc34eae7befa8bfdee4242a5e28c0b0edbb1a4
drwxr-xr-x 2 root root 4096 1125 02:36 67de889be9457b9b22e6faf87d2faa45e823236486c75f86c2b1f7e436b262b5
drwxr-xr-x 2 root root 4096 1125 02:36 6d75c02d3deeb73247665df9dbd74b60018676d7fa3a360c41e027420be19161
drwxr-xr-x 2 root root 4096 1125 02:36 6d75c02d3deeb73247665df9dbd74b60018676d7fa3a360c41e027420be19161-init
drwxr-xr-x 2 root root 4096 1125 12:00 6fa6e815583eb3ccd9758c0238b5213d9d532d5e34b85f5f181103d679871fb1
drwxr-xr-x 2 root root 4096 1125 12:00 6fa6e815583eb3ccd9758c0238b5213d9d532d5e34b85f5f181103d679871fb1-init
drwxr-xr-x 2 root root 4096 1125 11:45 ba87d27bc76b4f146884c4805af21c25a7bbbdd87229503f7e186fb0ccd63c2e
drwxr-xr-x 2 root root 4096 1125 11:45 ba87d27bc76b4f146884c4805af21c25a7bbbdd87229503f7e186fb0ccd63c2e-init
drwxr-xr-x 2 root root 4096 1125 02:36 bea8f41ae3e812e19e2b011bb78a268f386e2089320d1c48caf7dca3df39b15f
drwxr-xr-x 2 root root 4096 1125 02:41 c6128de0b863d00cb8af724d9b222c3aa080929e4328391e499dd49aae5adf1e
drwxr-xr-x 2 root root 4096 1125 02:41 c6128de0b863d00cb8af724d9b222c3aa080929e4328391e499dd49aae5adf1e-init
drwxr-xr-x 2 root root 4096 1125 12:19 ed4d220ff1641c25f2a09d98ca782b0b2fce83757afe9f425720f8bee88ae363
drwxr-xr-x 2 root root 4096 1125 12:19 ed4d220ff1641c25f2a09d98ca782b0b2fce83757afe9f425720f8bee88ae363-init
drwxr-xr-x 2 root root 4096 1125 02:36 ed6ff6865688f1f4e131482c7bbe7ada713271be7948902ebcb86dec27c4ff1c
drwxr-xr-x 2 root root 4096 1125 10:34 f6bf839a4bd5c60b68a9671ec8cd21102b703f2c48731f2b5875ff89f4bff148
drwxr-xr-x 2 root root 4096 1125 10:34 f6bf839a4bd5c60b68a9671ec8cd21102b703f2c48731f2b5875ff89f4bff148-init

列出镜像

docker images [OPTIONS][repsitory]
-a --all=false
-f --filter=[]
--no-trunc=false (不使用截断的形式 ID)
-q --quiet=false (只显示镜像的唯一ID)
eggyer@ubuntu:/usr/local$ docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             VIRTUAL SIZE
ubuntu              latest              bea8f41ae3e8        9 days ago          128.1 MB

REPOSITORY

一个镜像关联了一个REPOSITORY,一个REPOSITORY关联了一系列镜像
比如ubuntu就是一个仓库,其下边不同的镜像表示ubuntu不同的版本.
和之前讲到的REGISTRY仓库不同,REGISTRY是DOCKER的一系列组件,其包含了很多REPOSITORY

TAG

镜像的标签,不同的镜像以标签的形式区分;
同一个镜像可以使用不同的标签;
docker run ubuntu命令默认使用latest标签的ubuntu镜像.

使用notrunc查看完成的ID

eggyer@ubuntu:/usr/local$ docker images --no-trunc
REPOSITORY          TAG                 IMAGE ID                                                           CREATED             VIRTUAL SIZE
ubuntu              latest              bea8f41ae3e812e19e2b011bb78a268f386e2089320d1c48caf7dca3df39b15f   9 days ago          128.1 MB

只显示镜像名ID

eggyer@ubuntu:/usr/local$ docker images -q
bea8f41ae3e8

根据repository查看镜像

eggyer@ubuntu:/usr/local$ docker images ubuntu
REPOSITORY          TAG                 IMAGE ID            CREATED             VIRTUAL SIZE
ubuntu              latest              bea8f41ae3e8        9 days ago          128.1 MB

查看镜像的详细信息

docker inspect [options] CONTAINER|IMAGE[CONTAINER|image]
-f --format=""

eggyer@ubuntu:/usr/local$ docker inspect ubuntu:latest
[
{
    "Id": "bea8f41ae3e812e19e2b011bb78a268f386e2089320d1c48caf7dca3df39b15f",
    "RepoTags": [
        "ubuntu:latest"
    ],
    "RepoDigests": [],
    "Parent": "0d2ba69dbe3ebda7e9473d1db0f49e98115888586f10761709c02d8cca1d702f",
    "Comment": "",
    "Created": "2016-11-16T20:58:26.830045089Z",
    "Container": "c450b5337e9f0b1e408f45d76031d56219542c7ebe416c6d872694abcb7e5a33",
    "ContainerConfig": {
        "Hostname": "fb8ca5e4ccd2",
        "Domainname": "",
        "User": "",
        "AttachStdin": false,
        "AttachStdout": false,
        "AttachStderr": false,
        "Tty": false,
        "OpenStdin": false,
        "StdinOnce": false,
        "Env": [
            "PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
        ],
        "Cmd": [
            "/bin/sh",
            "-c",
            "#(nop) ",
            "CMD [\"/bin/bash\"]"
        ],
        "Image": "sha256:53ba9532a0d83bd4db49e5dbb11a2db0b5e9004669a030143a2c0a3f251bf900",
        "Volumes": null,
        "WorkingDir": "",
        "Entrypoint": null,
        "OnBuild": null,
        "Labels": {}
    },
    "DockerVersion": "1.12.3",
    "Author": "",
    "Config": {
        "Hostname": "fb8ca5e4ccd2",
        "Domainname": "",
        "User": "",
        "AttachStdin": false,
        "AttachStdout": false,
        "AttachStderr": false,
        "Tty": false,
        "OpenStdin": false,
        "StdinOnce": false,
        "Env": [
            "PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
        ],
        "Cmd": [
            "/bin/bash"
        ],
        "Image": "sha256:53ba9532a0d83bd4db49e5dbb11a2db0b5e9004669a030143a2c0a3f251bf900",
        "Volumes": null,
        "WorkingDir": "",
        "Entrypoint": null,
        "OnBuild": null,
        "Labels": {}
    },
    "Architecture": "amd64",
    "Os": "linux",
    "Size": 0,
    "VirtualSize": 128115414,
    "GraphDriver": {
        "Name": "aufs",
        "Data": null
    }
}
]

删除docker镜像

docker rmi [OPTIONS] IMAGE [IMAGE...]
-f --force=false  强制删除镜像
--no-prune=false 保留镜像中被打标签的父镜像

删除时若使用IMAGE名和TAG名的形式则每次会删除一个,如果一个镜像有多个TAG那么只有当最后一个IMAGE +TAG被删除时镜像菜会被删除

若使用IMAGEID可以删除其对应的多个IMAGE+TAG
Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐