要发布java项目,必然要有jdk环境,本篇以openjdk镜像为例,介绍镜像相关的操作命令

搜索镜像

docker search openjdk,搜索可下载的openjdk镜像,可以找到很多,OFFICIAL列OK,代表这是官方镜像

openoffice在docker中运行 docker openjdk_docker

下载镜像

docker pull openjdk:8,下载官方openjdk镜像,版本8。如果不指定版本,默认会是latest最终版,这个版本会实时更新,不是固定的,所以最好指定一个固定版本。

openoffice在docker中运行 docker openjdk_docker_02

这里有多个Pull complete,是指镜像有多层。比如linux文件系统算一层,在linux上加装了openjdk8,这又是一层。假如我另有一个openjdk11的镜像,可能也使用的同一个linux层,那么这两个镜像,只会存储一份linux层,以避免重复占用空间。

查看镜像

docker images,可查看本机上的镜像

openoffice在docker中运行 docker openjdk_镜像_03

  • REPOSITORY:仓库
  • TAG:标签,也是版本
  • IMAGE ID:镜像id,两个相同的镜像,id永远都是一样的,散列码了解一下。
  • CREATED:创建时间
  • SIZE:大小,上面讲过多 个镜像可能具有相同的层,所以它们的SIZE之和可能小于实际占用。

查看镜像层

 docker history openjdk:8,了解每一层是如何构建的,其中的各个命令以后会详细介绍

openoffice在docker中运行 docker openjdk_openjdk_04

查看镜像详情

docker inspect openjdk:8,详情信息内容比较多

openoffice在docker中运行 docker openjdk_docker_05

添加标签

docker tag openjdk:8 myjdk:1,可以理解为给镜像添加一个自定义的名字和版本,myjdk:1,上面说过,两个完全相同的镜像,他们的id是一样的,都是8ca4a86e32d8

openoffice在docker中运行 docker openjdk_openjdk_06

删除镜像

  • docker rmi 8ca4a86e32d8:通过id删除镜像,因为这个id现在有两个镜像,会发生冲突无法删除
  • docker rmi myjdk:1:通过名称和标签来删除镜像,这样就不会有冲突了。
  • -f:如果镜像有已经启动的容器,必须先删除容器才能删除镜像,或者加-f选项强制删除镜像。

openoffice在docker中运行 docker openjdk_镜像_07

  • 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文件导入为镜像

openoffice在docker中运行 docker openjdk_image_08

查看命令帮助

docker xxx --help:执行docker各命令时,在后面加--help,可以查看命令帮助文档,比如

openoffice在docker中运行 docker openjdk_openjdk_09