本文介绍Docker的镜像管理。
1.列出镜像可以通过docker images来列出目前本地所有的镜像名和大小。
$ docker images REPOSITORY TAG IMAGE ID CREATED SIZE ubuntu latest 38af2b009885 9 days ago 69.2MB
该命令可以添加–format和–filter参数,可以参考这里的:官方文档。
镜像是从镜像仓库下载下来的,下载下来的镜像文件保存在:/var/lib/docker目录下??todo
2.在仓库中搜素某个镜像可以通过search命令在仓库中搜素符合某个条件的镜像。比如我要搜索一个redis的镜像如下:
$ docker search redis NAME DESCRIPTION STARS OFFICIAL AUTOMATED redis Redis is an open source key-value store that… 10870 [OK] bitnami/redis Bitnami Redis Docker Image 214 [OK] rediscommander/redis-commander Alpine image for redis-commander - Redis man… 77 [OK] ...
可以看到包含redis字符串的镜像有很多,我们也可以通过一些条件来进一步筛选。筛选出stars大于3的所有busybox镜像:
$ docker search --filter stars=3 busybox NAME DESCRIPTION STARS OFFICIAL AUTOMATED busybox Busybox base image. 2588 [OK] radial/busyboxplus Full-chain, Internet enabled, busybox made f… 48 [OK] yauritux/busybox-curl Busybox with CURL 16 arm32v7/busybox Busybox base image. 10 arm64v8/busybox Busybox base image. 4 odise/busybox-curl 4 [OK] i386/busybox Busybox base image. 3
search命令的详细说明,参考:官方文档的说明。
3.拉取镜像通过pull命令可以从远程拉取某个镜像到本地。
# 拉取busybox镜像 $ docker pull busybox Using default tag: latest # 基于该镜像,创建一个容器,并进入容器 $ docker run -i -t busybox /bin/sh / # ls bin dev etc home proc root sys tmp usr var4.如何将镜像推送到Docker Hub
可以把自己构建好的镜像推送到Docker Hub仓库,推送的命令很简单,就是push。但是要注意,不能推送到root仓库目录下,比如:
$ docker push busybox
这样是没法成功的。必须要加上自己的子仓库目录:
$ docker push myregistry/busybox
可以官方文档来了解更多的信息。可以查看docker-hub的文档:docker-hub说明。也可以自动构建镜像,具体的构建过程,可以参考官方文档。
5.删除镜像(1)删除本地的镜像: rmi
可以通过rmi来删除本地保存的镜像,比如我们要删除一个叫memcached的本地镜像,可以如下:
$ docker rmi memcached Untagged: memcached:latest ...
(2)删除远程的镜像:以上命令只能删除本地的镜像,若是删除远程仓库中的镜像,则需要在Docker Hub上进行操作。
(3)删除本地所有的镜像:
$ docker rmi `docker images -a -q`



