目录
一.公有云
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 -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是为了实现一个功能,却分了好几层,看看下面优化之后的写法