基本概念
- 镜像:可理解成是可执行的程序包,它是静态只读的,可以以文件的形式迁移。
- 基础镜像:比如centos镜像,是由官方发布的,是一个虚拟化的centos系统。可以它为基础构建自定义镜像。
- 自定义镜像:项目发布需要在centos服务器上配置java环境,复制项目文件运行等。这个过程也可以在centos基础镜像内进行,将其再次打包,就升级为了一个自定义的项目镜像。这个镜像可以以文件的形式复制到服务器上,服务器只要预装了docker环境,即可一键启动镜像,完成项目上线。而不需要在服务器进行项目的环境配置。镜像自身是静态只读的,而运行镜像项目必然会产生运行时数据,必须是动态可写的,所以就需要有容器。
- 容器:当镜像运行时,实际是创建了一个容器,它是一个虚拟化的沙箱环境。可能项目需要,一个容器运行的是jdk8的环境和项目,另一个是jdk11的,他们彼此是完全隔离的,不会有版本冲突问题。而运行时产生的数据,也存储在各个容器内部,不会互相冲突,不会影响到系统。
阿里云镜像加速器
上面介绍了,构建自己的项目镜像,首先要下载基础镜像,而默认都是从国外下载的速度会非常慢,可以配置从阿里云下载。访问阿里云镜像 需要有阿里云账号登录,在产品与服务--弹性计算--容器镜像服务--镜像加速器 菜单,如下图,会有详细命令,直接复制执行即可
hello-world
下面来实现一下官方的hello-world镜像效果,下载hello-world镜像:docker pull hello-world
运行hello-world镜像:docker run hello-world