03 Docker 镜像管理


  • docker search : 从Docker Hub查找镜像

  • OPTIONS说明:

1
2
3
4
5
--automated :只列出 automated build类型的镜像;

--no-trunc :显示完整的镜像描述;

-s :列出收藏数不小于指定值的镜像。
  • 搜索所有nginx相关的镜像
1
2
3
4
5
[root@linux-node1 ~]# docker search nginx

NAME DESCRIPTION STARS OFFICIAL AUTOMATED
nginx Official build of Nginx. 12036 [OK]
...
  • 搜索结果解释
1
2
3
4
5
6
7
8
9
NAME:镜像名称

DESCRIPTION:镜像说明

OFFICIAL:是否docker官方发布

STARS:点赞数量

AUTOMATED:是否是自动构建的

获取镜像 docker pull

  • docker pull : 从镜像仓库中拉取或者更新指定镜像
1
2
3
4
5
6
7
8
9
10
11
# 不指定版本默认为最新版,只写名字默认在官方拉取
[root@linux-node1 docker]# docker pull nginx

Using default tag: latest
latest: Pulling from library/nginx
b8f262c62ec6: Pull complete
e9218e8f93b1: Pull complete
7acba7289aa3: Pull complete
Digest: sha256:aeded0f2a861747f43a01cf1018cf9efe2bdd02afd57d2b11fcc7fcadc16ccd1
Status: Downloaded newer image for nginx:latest
docker.io/library/nginx:latest
1
2
3
4
5
6
7
8
9
10
# 拉取指定版本
[root@linux-node1 docker]# docker pull nginx:1.16.1

1.16.1: Pulling from library/nginx
b8f262c62ec6: Already exists
00b0a9251451: Pull complete
7cc4a8bdb72c: Pull complete
Digest: sha256:0d0af9bc6ca2db780b532a522a885bef7fcaddd52d11817fc4cb6a3ead3eacc0
Status: Downloaded newer image for nginx:1.16.1
docker.io/library/nginx:1.16.1

查看镜像 docker images

  • docker images : 列出本地镜像

  • OPTIONS说明:

1
2
3
4
5
6
7
8
9
10
11
-a :列出本地所有的镜像;

--digests :显示镜像的摘要信息;

-f :显示满足条件的镜像;

--format :指定返回值的模板文件;

--no-trunc :显示完整的镜像信息;

-q :只显示镜像ID。
1
2
3
4
[root@linux-node1 docker]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
nginx latest f949e7d76d63 2 weeks ago 126MB
nginx 1.16.1 0dac5b41d811 3 weeks ago 126MB
1
2
3
4
5
6
7
8
9
REPOSITORY:表示镜像的仓库源

TAG:镜像的标签

IMAGE ID:镜像ID

CREATED:镜像创建时间

SIZE:镜像大小

导出镜像 docker image save

1
2
3
[root@linux-node1 ~]# docker save -o nginx:1.16.tar nginx:1.16.1
[root@linux-node1 ~]# ls
anaconda-ks.cfg docker_in.sh nginx:1.16.tar

删除镜像 docker rmi

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
# docker rmi IMAGE[IMAGE...] IMAGE可以为标签或ID
# 当该镜像存在容器时,不能删除镜像,但可以加上 -f 选项强制删除,同时也删除容器。

[root@linux-node1 ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
nginx latest f949e7d76d63 2 weeks ago 126MB
nginx 1.16.1 0dac5b41d811 3 weeks ago 126MB


[root@linux-node1 ~]# docker rmi 0dac5b41d811
Untagged: nginx:1.16.1
Untagged: nginx@sha256:0d0af9bc6ca2db780b532a522a885bef7fcaddd52d11817fc4cb6a3ead3eacc0
Deleted: sha256:0dac5b41d811ca6e1bfe68d31bec5fb1f5c37485b741674619a1a2a3dec5cc0e
Deleted: sha256:e9aa30f728ac61d63293f77283681af6d7191aa9bd2326ce3f56839bbf4aa001
Deleted: sha256:c32f482f1fd81bc84657ff0fb85a0a62ab3223f835875930e1e9658f57768c2e

[root@linux-node1 ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
nginx latest f949e7d76d63 2 weeks ago 126MB

清理镜像 docker prune

  • prune 命令用来删除不再使用的 docker 对象。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
# 生产环境要谨慎使用
# 删除所有未被 tag 标记和未被容器使用的镜像:
docker image prune

# 删除所有未被容器使用的镜像:
docker image prune -a

# 删除所有停止运行的容器:
docker container prune

# 删除所有未被挂载的卷:
docker volume prune

# 删除所有网络:
docker network prune

# 删除 docker 所有资源:
docker system prune

导入镜像 docker image load

1
2
3
4
5
6
7
8
9
[root@linux-node1 ~]# docker load --input nginx\:1.16.tar 
2db44bce66cd: Loading layer [==================================================>] 72.48MB/72.48MB
2d62b975fbed: Loading layer [==================================================>] 57.32MB/57.32MB
520ed35c2642: Loading layer [==================================================>] 3.584kB/3.584kB
Loaded image: nginx:1.16.1

[root@linux-node1 ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
nginx 1.16.1 0dac5b41d811 3 weeks ago 126MB

查看镜像详细信息 docker inspect

  • inspect 命令来查看镜像的详细信息:docker [image] inspect
1
2
3
4
5
6
7
# 查看镜像所有详细信息
[root@linux-node1 docker]# docker inspect nginx


# 查看其中一项
[root@linux-node1 docker]# docker inspect -f {{".Created"}} nginx
2019-09-24T23:33:17.034191345Z