docker公共仓库
docker开源源代码
https://github.com/docker/docker
docker文档
https://docs.docker.com/registry/spec/api/#tags
docker构想
docker的构想是通过对应用的封装、分发、部署、运行 生命周期进行管理,达到应用组件“一次封装,到处运行”的目的。
应用组件,既可以是一个web应用,一个编译环境,也可以是一套数据库平台服务,甚至是一个操作系统或集群。
docker提供高效、敏捷和轻量级的容器方案,并支持部署到本地环境和多种主流云平台。可以说,docker首次为应用的开发、运行和部署提供了“一站式”的实用解决方案。
docker的概述
docker提供了各种容器管理工具(如分发、版本、移植等)让用户无需关注底层的操作,可以更简单的管理和使用容器;其次,docker通过引入分层文件系统构建和高效的镜像机制,降低迁移难度,极大的提升了用户体验。用户操作docker容器就像操作应用自身一样简单。
简单说,可以将docker容器理解成一种轻量级的沙盒。每个容器内运行着一个应用,不同的容器相互隔离,容器之间也可以通过网络互相通信。容器的创建和停止都十分快速,几乎跟创建和终止原应用一致;另外,容器自身对系统资源的额外需求有限,可以直接将容器当作应用本身。
docker的好处
docker通过容器打包应用,解耦应用和运行平台。意味着迁移的时候,只需要在新的服务器上启动需要的容器即可,无论新旧服务器是否是一同一个类型的平台。节约了大量的开发、测试、部署的时间,并降低部署过程出现问题的风险。
更快速的交付和部署。开发人员可使用镜像快速构建一套标准的开发环境;测试和运维人员可以直接使用完全相同的环境部署代码
更高效的资源利用。docker容器的运行是内核级的虚拟化,对资源的额外需求很低。
更轻松的迁移和扩展。docker容器几乎可以在任意的平台上运行。
更简单的更新管理。配置的修改只需要修改Dockerfile即可,代替以往大量的更新工作。
docker与虚拟机的比较
docker容器很快,启动和停止可以秒级实现,而传统的虚拟机需要数分钟。
docker容器对系统的资源需求很少,一台主机可以同时运行数千个docker容器。传统的虚拟机方式运行N个不同的应用就要起N个虚拟机,而docker只需要启动N个隔离的容器,将应用放进容器内即可。
docker通过类似git设计理念的操作方便用户获取、分发和更新应用镜像。
docker通过dockerfile文件支持灵活的自动化创建和部署机制,提高工资效率,是流程标准化。