Docker - Image

镜像是多层存储结构,并且可以继承、复用,因此不同镜像可能会因为使用相同的基础镜像,从而拥有共同的层。Docker使用Union FS,相同的层只需要保存一份即可。

镜像层数量可能会很多,所有镜像层会联合在一起组成一个统一的文件系统。

新镜像是从base镜像一层一层叠加生成的。每安装一个软件,就在现有镜像的基础上增加一层。

获取镜像

可以到Docker Hub去查找镜像。

从Docker Registry获取镜像的命令是docker image pull。其命令格式为:

1
2
3
4
5
6
7
8
9
10
docker@default:~$ docker image pull --help

Usage: docker image pull [OPTIONS] NAME[:TAG|@DIGEST]

Pull an image or a repository from a registry

Options:
-a, --all-tags Download all tagged images in the repository
--disable-content-trust Skip image verification (default true)
--help Print usage

默认地址是 Docker Hub。如果不用默认,地址的格式一般是 <域名/IP>[:端口号]。

例子:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
docker@default:~$ git image pull mongo
Using default tag: latest
latest: Pulling from library/mongo
d13d02fa248d: Pull complete
bc8e2652ce92: Pull complete
3cc856886986: Pull complete
c319e9ec4517: Pull complete
b4cbf8808f94: Pull complete
cb98a53e6676: Pull complete
f0485050cd8a: Pull complete
ac36cdc414b3: Pull complete
61814e3c487b: Pull complete
523a9f1da6b9: Pull complete
3b4beaef77a2: Pull complete
Digest: sha256:d13c897516e497e898c229e2467f4953314b63e48d4990d3215d876ef9d1fc7c
Status: Downloaded newer image for mongo:latest

查看本地镜像

想查看已经下载的镜像, 格式:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
docker@default:~$ docker image ls --help

Usage: docker image ls [OPTIONS] [REPOSITORY[:TAG]]

List images

Options:
-a, --all Show all images (default hides intermediate images)
--digests Show digests
-f, --filter filter Filter output based on conditions provided
--format string Pretty-print images using a Go template
--help Print usage
--no-trunc Don't truncate output
-q, --quiet Only show numeric IDs

不只可以列出所有的镜像,还可以列出特定的某个镜像。

例子:

1
2
3
4
docker@default:~$ docker image ls
REPOSITORY TAG IMAGE ID CREATED SIZE
mongo latest d22888af0ce0 3 weeks ago 361MB
hello-world latest 725dcfab7d63 3 weeks ago 1.84kB

查看镜像占用空间

想查看已经下载的镜像的占用空间, 格式: docker system df
例子:

1
2
3
4
5
6
docker@default:~$ docker system df
TYPE TOTAL ACTIVE SIZE RECLAIMABLE
Images 2 1 360.9MB 360.9MB (99%)
Containers 2 0 0B 0B
Local Volumes 0 0 0B 0B
Build Cache 0B 0B

删除本地镜像

想删除已经下载的镜像, 格式:

1
2
3
4
5
6
7
8
9
10
11
12
13
docker@default:~$ docker image rm --help

Usage: docker image rm [OPTIONS] IMAGE [IMAGE...]

Remove one or more images

Aliases:
rm, rmi, remove

Options:
-f, --force Force removal of the image
--help Print usage
--no-prune Do not delete untagged parents

如果这个镜像被容器使用着,是不能够删除的。

例子:

1
2
3
4
5
docker@default:~$ docker image rm hello-world
Untagged: hello-world:latest
Untagged: hello-world@sha256:0e06ef5e1945a718b02a8c319e15bae44f47039005530bc617a5d071190ed3fc
Deleted: sha256:725dcfab7d63ec87fa6fc5162ca0a36f67ad89cdfd7f9a156957b79d8b855368
Deleted: sha256:51d9ee0d3e49cf0d51e2149c89b0c428ed1151a7daecdcfaba8a3fc71ef3e8d0

唐胡璐 wechat
欢迎您扫一扫上面的微信公众号,订阅我的博客!
分享创造价值,您的支持将鼓励我继续前行!