Docker Hub网站是docker的官方网站,里面有着大量的镜像来供大家下载
这里以nginx为例,查出来的都是以下载量排序。
docker search nginx NAME DESCRIPTION STARS OFFICIAL AUTOMATED nginx Official build of Nginx. 13713 [OK] jwilder/nginx-proxy Automated Nginx reverse proxy for docker con… 1870 [OK] richarvey/nginx-php-fpm Container running Nginx + PHP-FPM capable of… 785 [OK] linuxserver/nginx An Nginx container, brought to you by LinuxS… 128 bitnami/nginx Bitnami nginx Docker Image 90 [OK] tiangolo/nginx-rtmp Docker image with Nginx using the nginx-rtmp… 89 [OK] jc21/nginx-proxy-manager Docker container for managing Nginx proxy ho… 87 alfg/nginx-rtmp NGINX, nginx-rtmp-module and FFmpeg from sou… 75 [OK] nginxdemos/hello NGINX webserver that serves a simple page co… 60 [OK] jlesage/nginx-proxy-manager Docker container for Nginx Proxy Manager 53 [OK]
获取镜像(pull)
我们先来看一下pull的命令格式,其中NAME是镜像的名字,TAG是镜像的标签
docker pull [OPTIONS] NAME[:TAG|@DIGEST]
这里可以登录Docker Hub官网去看一下,搜索一下nginx的镜像
这里可以看到每个镜像右边都带有下载镜像的命令,例如这个,一般来说,下载一个镜像都需要‘名字:标签’,毕竟这样更加稳定,下面会做说明
docker pull nginx:1.19.2
对于Docker镜像来说,如果不指定TAG,则会默认选择latest标签,这会下载
仓库中最新版本的镜像。
docker pull nginx
一般来说, 镜像的latest 标签意味着该镜像的内容会跟踪最新版本的变更而变化, 内容是不稳定的。因此,从稳定性上考虑,不要在生产环境中忽略镜像的标签信息或使用默认的latest 标记的镜像。
查看镜像信息
1.列出镜像(image)
docker image ls
REPOSITORY TAG IMAGE ID CREATED SIZE
nginx 1.19.2 4bb46517cac3 3 weeks ago 133MB
or
docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
nginx 1.19.2 4bb46517cac3 3 weeks ago 133MB
docker image ls 等同于 docker images
REPOSITORY:来自哪个仓库
TAG:该镜像的标签
IMAGE ID:镜像的ID(唯一标识),若镜像ID相同,则实际上指向了一个同一个镜像,只不过具有不同的标签而已
CREATED:镜像最后更新时间
SIZE:镜像大小
在需要使用镜像ID的命令里,一般可以使用ID的前几个来代表整个ID。
images的几个常用子命令
docker images -a 列出所以镜像文件,包括临时文件
docker images -q 仅输出镜像ID
2.镜像添加标签(tag)
使用docker tag来给本地镜像添加一个新的标签
docker tag nginx:1.19.2 newnginx:newtar
docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
newnginx newtar 4bb46517cac3 3 weeks ago 133MB
nginx 1.19.2 4bb46517cac3 3 weeks ago 133MB
这样就可以用newnginx:newtar来表示这个镜像,在这里我们可以看到newnginx:newtar的镜像ID和nginx:1.19.2的镜像ID相同,他们实际上是指向的同一个镜像,只是别名不同。
3.查看镜像信息(inspect)
命令格式:
docker inspect [OPTIONS] NAME|ID [NAME|ID...]
docker inspect nginx:1.19.2
[
{
"Id": "sha256:4bb46517cac397bdb0bab6eba09b0e1f8e90ddd17cf99662997c3253531136f8",
"RepoTags": [
"newnginx:newtar",
"nginx:1.19.2"
],
"RepoDigests": [
"nginx@sha256:b0ad43f7ee5edbc0effbc14645ae7055e21bc1973aee5150745632a24a752661"
],
"Parent": "",
"Comment": "",
"Created": "2020-08-14T00:36:48.610531148Z",
·····
4.查看镜像历史(history)
docker history nginx:1.19.2
IMAGE CREATED CREATED BY SIZE COMMENT
4bb46517cac3 3 weeks ago /bin/sh -c #(nop) CMD ["nginx" "-g" "daemon… 0B
<missing> 3 weeks ago /bin/sh -c #(nop) STOPSIGNAL SIGTERM 0B
<missing> 3 weeks ago /bin/sh -c #(nop) EXPOSE 80 0B
<missing> 3 weeks ago /bin/sh -c #(nop) ENTRYPOINT ["/docker-entr… 0B
<missing> 3 weeks ago /bin/sh -c #(nop) COPY file:0fd5fca330dcd6a7… 1.04kB
<missing> 3 weeks ago /bin/sh -c #(nop) COPY file:1d0a4127e78a26c1… 1.96kB
<missing> 3 weeks ago /bin/sh -c #(nop) COPY file:e7e183879c35719c… 1.2kB
<missing> 3 weeks ago /bin/sh -c set -x && addgroup --system -… 63.4MB
<missing> 3 weeks ago /bin/sh -c #(nop) ENV PKG_RELEASE=1~buster 0B
<missing> 3 weeks ago /bin/sh -c #(nop) ENV NJS_VERSION=0.4.3 0B
<missing> 3 weeks ago /bin/sh -c #(nop) ENV NGINX_VERSION=1.19.2 0B
<missing> 5 weeks ago /bin/sh -c #(nop) LABEL maintainer=NGINX Do… 0B
<missing> 5 weeks ago /bin/sh -c #(nop) CMD ["bash"] 0B
<missing> 5 weeks ago /bin/sh -c #(nop) ADD file:3af3091e7d2bb40bc… 69.2MB
过长的命令将会自动截断,使用 –np-trunc来输出完整命令,有需要的可以自己体验下
1.通过标签来删除镜像
命令格式:
docker rmi [OPTIONS] IMAGE [IMAGE...]
OPTIONS支持选项:
-f, -force: 强制删除镜像, 即使有容器依赖它;
-no-prune: 不要清理未带标签的父镜像。
其中,IMAGE可以为标签或者ID
2.通过镜像ID来删除
当使用 docker rmi 命令, 并且后面跟上镜像的 ID (也可以是能进行区分的部分 ID 串前缀)时, 会先尝试删除所有指向该镜像的标签, 然后删除该镜像文件本身。
3.清理镜像(prune)
使用Docker一段时间后, 系统中可能会遗留一些临时的镜像文件, 以及一些没有被使用的镜像, 可以通过docker image prune命令来进行清理。
命令格式:
docker image prune [OPTIONS]
OPTIONS支持选项:
-a, --all: 删除所有无用镜像, 不光是临时镜像;
–filter filter: 只清理符合给定过滤器的镜像;
-f, --force: 强制删除镜像, 而不进行提示确认。
[root@localhost ~]# docker image prune
WARNING! This will remove all dangling images.
Are you sure you want to continue? [y/N] y
Total reclaimed space: 0B