本文介绍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 var
4.如何将镜像推送到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`