承接上篇的docker简介,实际上,镜像(image)其实就是容器(container)的模板,容器都是通过镜像创建的,所以镜像中包含启动容器所需要的所有文件系统结构和内容。简单来讲,镜像是一个特殊的文件系统,它提供了容器运行时所需的程序、软件库、资源、配置等静态数据。
ownCloud 项目使用了 PHP+MySQL 的经典组合,无论在自己的电脑上或是 VPS 服务器上,基本上只要能跑 WordPress 网站的机器都能运行了,安装服务器端就像用 PHP 程序建站一样简单。
从去年开始. hub.docker.com 在国内的访问速度极慢. 当时大家主要还是依赖国内的一些镜像源: 如中科院或alipapa etc. 但是今年逐渐所有的国内镜像站也逐渐关闭. 在墙内的小伙伴想要拉取镜像变成了很困难的事情。
基于以上问题,龙蜥社区引入了 Nydus 镜像加速方案以及基于 Dragonfly 的 P2P 镜像加速系统,其中 Nydus 提供了镜像按需加载能力,Dragonfly 提供了集群镜像 P2P 加速能力,通过以上能力的组合减少容器启动过程中镜像的拉取时间,提升集群间的镜像分发效率。02 在龙蜥 OS 上构建 Harbor 以及服务与 Harbor 的 Nydus 插件。
Docker 使用 Google 公司推出的 Go 语言进行开发实现,基于 Linux 内核的cgroup,namespace,以及 OverlayFS类的 Union FS 等技术,对进程进行封装隔离,属于操作系统层面的虚拟化技术。
比如 Build 集群镜像过程中需要缓存容器镜像,传统的做法是 pull 再 push 显然多做了一些无用功,我们就采用代理直接 cache 下来,pull 的过程直接缓存,但是 build 的时候需要起 registry 还是不够极致,未来我们会直接集成核心代码,在不启动 registry 的情况下即可缓存。