要发布java项目,必然要有jdk环境,本篇以openjdk镜像为例,介绍镜像相关的操作命令
搜索镜像
docker search openjdk,搜索可下载的openjdk镜像,可以找到很多,OFFICIAL列OK,代表这是官方镜像
下载镜像
docker pull openjdk:8,下载官方openjdk镜像,版本8。如果不指定版本,默认会是latest最终版,这个版本会实时更新,不是固定的,所以最好指定一个固定版本。
这里有多个Pull complete,是指镜像有多层。比如linux文件系统算一层,在linux上加装了openjdk8,这又是一层。假如我另有一个openjdk11的镜像,可能也使用的同一个linux层,那么这两个镜像,只会存储一份linux层,以避免重复占用空间。
查看镜像
docker images,可查看本机上的镜像
- REPOSITORY:仓库
- TAG:标签,也是版本
- IMAGE ID:镜像id,两个相同的镜像,id永远都是一样的,散列码了解一下。
- CREATED:创建时间
- SIZE:大小,上面讲过多 个镜像可能具有相同的层,所以它们的SIZE之和可能小于实际占用。
查看镜像层
docker history openjdk:8,了解每一层是如何构建的,其中的各个命令以后会详细介绍
查看镜像详情
docker inspect openjdk:8,详情信息内容比较多
添加标签
docker tag openjdk:8 myjdk:1,可以理解为给镜像添加一个自定义的名字和版本,myjdk:1,上面说过,两个完全相同的镜像,他们的id是一样的,都是8ca4a86e32d8
删除镜像
- docker rmi 8ca4a86e32d8:通过id删除镜像,因为这个id现在有两个镜像,会发生冲突无法删除
- docker rmi myjdk:1:通过名称和标签来删除镜像,这样就不会有冲突了。
- -f:如果镜像有已经启动的容器,必须先删除容器才能删除镜像,或者加-f选项强制删除镜像。
- docker image prune:清理所有即没有tag标签,也没有关联容器的镜像。
- docker image prune -a:清理所有没有关联窗口的镜像,prune主要用于批量删除无用资源。
导出导入文件
- docker save -o hello.tar hello-world:将hello-world镜像导出为hello.tar文件,-o是output,后面跟文件名
- docker load -i hello.tar:将hello.tar文件导入为镜像
查看命令帮助
docker xxx --help:执行docker各命令时,在后面加--help,可以查看命令帮助文档,比如