本文最后更新于 257 天前,其中的信息可能已经过时,如有错误请发送邮件到wuxianglongblog@163.com
docker镜像常用命令
一.docker常用命令概述
1.docker命令的使用方法
如下图所示,对应的是docker命令的使用方法。
root@docker201.oldboyedu.com ~]# docker
2.查看docker子命令的帮助信息
如下图所示,我们可以查看docker命令的帮助信息哟~
root@docker201.oldboyedu.com ~]# docker search --help
3.镜像管理命令概述
如下图所示,不难发现"docker image ls"和"docker images"的效果是一样的。"docker image pull"和"docker pull"效果是相同的。
后者是较老docker版本者的使用习惯,有关镜像管理命令由于历史性原因保留了两种用法。
二.生产环境中常用的 docker镜像相关指令
1.搜索docker镜像(search)
[root@docker201.oldboyedu.com ~]# docker search mysql
[root@docker201.oldboyedu.com ~]# docker search mysql --limit 5
搜索效果如下图所示,其提供了五个字段,分别代表的含义解释如下:
NAME:
镜像的名称。
DESCRIPTION:
镜像的描述信息。
STARS:
镜像的星星数量,星星越多,说明受欢迎度越高哟~
OFFICIAL:
该镜像是否是官方发布。
AUTOMATED
该镜像是否支持支持自动化构建功能。
温馨提示:
(1)选镜像时建议优先考虑官方(OFFICIAL)和星星(STARS)数量较多的镜像,官方镜像仓库地址如下所示:
hub.docker.com
(2)关于自动化构建,此处建议先战略性跳过,感兴趣的小伙伴可参考以下连接哟;
https://docs.docker.com/docker-hub/builds/
2.下载镜像(pull)
[root@docker201.oldboyedu.com ~]# docker pull nginx:1.20.1
[root@docker201.oldboyedu.com ~]# docker pull nginx
3.上传镜像(push,先战略性跳过)
在后面构建镜像仓库的时候讲解,此处战略性跳过。
4.查看本地镜像列表(ls)
[root@docker201.oldboyedu.com ~]# docker images
5.导出镜像(save)
[root@docker201.oldboyedu.com ~]# docker save nginx:1.20.1 -o oldboyedu_docker_nginx.tar.gz
温馨提示:
如下图所示,我们可以基于镜像的ID从而导出指定的镜像。我不推荐这样做,因为导入镜像的时候会发现镜像名称和其版本号均为"<none>"
6.删除镜像(rm)
[root@docker201.oldboyedu.com ~]# docker rmi 993ef3592f66
温馨提示:
(1)我们可以基于镜像的ID来删除指定的镜像文件,当然,也可以基于镜像名称和TAG编号一起删除;
(2)很明显"docker image rm"有"docker rmi","docker remove"多个别名哟;
(3)使用"docker rm"删除的是容器哟,而非镜像;
(4)想要批量删除镜像,可以先停止docker服务,然后将"/var/lib/docker/*"目录全部删除,这意味着对docker进行初始化操作,因为它意味着删除了所有数据,该操作是不可逆的。
7.导入镜像(load)
[root@docker201.oldboyedu.com ~]# docker image load -i oldboyedu_docker_nginx.tar.gz
8.导入镜像(import)
如下图所示,使用import指令也可以导入镜像,但都没有名字哟~
请先允许我买个关子哈,后面给大家介绍一下它的妙用哟!
9.打标签(tag)
如下图所示,我们可以为一个镜像打多个标签哟~
10.清除无效镜像(prune)
如下图所示,我们可以清理无效的镜像。所谓的无效的镜像我们指的就是没有镜像名称和标签的。
11.构建镜像(build,战略性跳过)
docker image build -t oldboyedu_dockerfile_xiaoniao:v1 .
12.查看构建历史(history,战略性跳过)
docker image history centos:7 --no-trunc
13.查看镜像属性(inspect,战略性跳过)
后期会讲,此处先跳过。
三.课堂练习
1.批量导入镜像
请批量导入镜像
如下图所示,以oldboyedu开头的都是我提前打包好的镜像,请批量完成打包操作。
参考案例
案例1:
for image in `ls *.tar.gz`; do docker load -i $image; done
案例2:
ls *.tar.gz |xargs -i docker image load -i {}
2.批量导出镜像
请批量导出镜像
请将上述案例的"nginx:latest"和"mysql:latest"两个软件包打包到同一个文件中。
参考案例
[root@docker201.oldboyedu.com ~]# docker save -o oldboyedu_docker_demo.tar.gz nginx:latest mysql:latest