3、docker镜像深入理解和发布镜像

 

操作环境及软硬件参考配置如下:

3.1、镜像的理解

1、镜像是一种轻量级、可执行的独立软件包,它包含运行某个软件所需要的所有内容。我们将应用程序、配置打包成一个成型的、可交付、可部署的运行环境,包括代码、运行时所需要的库、环境变量和配置文件等,这个大包好的运行环境就是image镜像文件。

2、只有通过镜像文件才能生成docker容器实例。

 

3.2、UnionFS(联合文件系统)

1、Union文件系统(UnionFS)是一种分层的、轻量级的、高性能的文件系统,它是docker镜像的基础,并且支持对文件系统的修改作为一次提交来一层层的叠加,同时可以将不同目录挂在到同一个虚拟文件系统下。

2、镜像可以通过分层来进行继承,基于基础镜像,可以制作各种具体的应用镜像。

Union文件系统的特性:一次性同时加载多个文件系统,但是从外面来看,只能看到一个文件系统;联合加载会把各层文件系统叠加起来,这样最终的文件系统会包含所有地层的文件和目录。

 

3.3、镜像分层

下载一个镜像时,注意观察下载的日志输出,可以看到是一层一层的在下载:

image-20230424154810939

 

3.3.1、分层理解

 

3.3.2、docker镜像要采用分层的好处

资源共享,比如有多个镜像都从相同的Base镜像构建而来,那么宿主机只需在磁盘上保留一份base镜像,同时内存中也只需要加载一份base镜像,这样就可以为所有的容器服务了,而且镜像的每一层都可以被共享。

 

 

3.4、制作和发布镜像

 

3.4.1、制作镜像

方式1、从容器中提交一个镜像:

方式2、dockerfile制作镜像:

 

3.4.2、发布镜像

docker仓库(repository)是集中存放镜像文件的场所。最大的公开仓库是docker hub(https://hub.docker.com/),存放了数量庞大的镜像供用户下载。国内的公开仓库包括阿里云 、网易云等。

 

发布镜像到docker hub步骤: 1、地址:https://hub.docker.com/ ,先注册账号 2、保证账号可以正常登录

image-20230424151714735

3、使用 tag命令修改镜像名称

发布镜像到docker hub的规范是:

比如我这里的注册用户名是:pengan88,那就要先修改镜像名称

4、登录docker hub发布镜像:

5、访问docker hub可查看到已经发布成功

image-20230424152530278