目录
一.公有云
1.Docker为什么推送镜像到远程仓库
2.发布镜像到Docker Hub
3.发布镜像到阿里云
二.核心技术
1.基本架构
2.联合文件
一.公有云
1.Docker为什么推送镜像到远程仓库
如果我们想将这个镜像提供给别人使用时,我们可以将镜像推送到远程仓库,然后别人从远程仓库中下载即可。 远程仓库仓库 Docker Hub Docker Hub是Docker社区分享Docker镜像的网站/存储库。 阿里云容器镜像服务 ACR 阿里云容器镜像服务(简称 ACR )是面向容器镜像、 Helm Chart 等符合 OCI 标准的云原生制品安 全托管及高效分发平台。 ACR 支持全球同步加速、大规模 / 大镜像分发加速、多代码源构建加速等全链路提效,与容器服务 ACK 无缝集成,帮助企业降低交付复杂度,打造云原生应用一站式解决方案。
2.发布镜像到Docker Hub
略,以后用到再学。
3.发布镜像到阿里云
略,以后用到再学。
二.核心技术
1.基本架构
Docker归根到底是一种容器虚拟化技术。
Docker采用了标准的C/S架构,包括客户端和服务端两大部分。客户端和服务端既可以运行在一个机器上,也可通过socket或者RESTful API来进行容器通信。 服务端 Docker daemon一般在宿主主机后台运行,作为服务端接受来自客户的请求并处理。Docker基本架构理这些请求(创建、运行、分发容器)。在设计上,Docker daemon是一个非常松耦合的架构,通过专门的 Engine模块来分发管理各个来自客户端的任务。
客户端 Docker客户端则为用户提供一系列可执行命令,用户用这些命令实现与Docker daemon的交互。
sudo docker versionsudo docker -H tcp://127.0.0.1:1234 docker images
第二行命令的1234是访问服务端的默认端口,最后的docker images是该条访问服务端的指令访问到服务器之后想要执行的命令。
2.联合文件
联合文件系统是实现Docker镜像的技术基础。
联合文件系统(UnionFS)是一种轻量级的高性能分层文件系统,它支持将文件系统中的修改信息作为一次提交,并层层叠加,同时可以将不同目录挂载到同一个虚拟文件系统下。
Dockerfile Dockerfile用于描述镜像的生成规则。Dockerfile中的每一条命令,都在Docker镜像中以一个独立镜像层的形式存在。 Image Image由Dockerfile生成,呈现层级结构,每层镜像包含:镜像文件以及镜像json元数据信息。 Container Container是Image的动态运行结果,概括而言,就是在Docker镜像之上,运行进程。
减少镜像的层数
镜像分层的好处
1. 基本上每个软件都是基于某个镜像去运行的,因此一旦某个底层环境出了问题,就不需要去修改全部基于该镜像的软件的镜像,只需要修改底层环境的镜像。 2. 这个好处也是最大好处,就是可以共享资源,其他相同环境的软件镜像都共同去享用同一个环境镜像,而不需要每个软件镜像要去创建一个底层环境。 3. 可以复用,节省磁盘空间,相同的内容只需加载一份到内存。 修改dockerfile之后,再次构建速度快。
优化前
上面的每一行指令都是一层,看到有好几行RUN,但是这好几行RUN是为了实现一个功能,却分了好几层,看看下面优化之后的写法优化后
使用&&将命令连接起来,需要换行时用\