在使用 docker 的过程中,有时候对镜像和容器这两者的概念一直不是特别清楚,今天在查看了一些资料之后总结如下:
镜像可以理解是:
别人打包好并上传到公共仓库的可以运行的一套静态文件模板,例如,我们将一个springboot项目打包成镜像上传到 Docker Hub 远程仓库等等;
容器可以理解是:
基于镜像运行后生成的一个实例,如果类比在 Java 语言中,镜像就像是接口,容器就像是实现类,镜像定义模板,至于镜像具体要以什么行为方式运行(是单机还是集群、使用什么端口、是否文件挂载等等这些运行配置项)则由开发者自己定义,同一个镜像根据不同行为方式运行得到的容器是不同的,就像一个接口的不同实现类一样,他们都有自己的名字,自己的内容。