Docker和容器的区别?容器技术早已存在,Docker 是属于容器服务的一种,是一个开源的应用容器引擎。
传统的容器技术没有成为主流的原因,是因为其未能提供标准化的应用运行时环境,而以Docker为代表的新一代容器技术,从一开始就以提供标准化的运行时环境为目标,真正做到“build once, run anyWhere”(一次建立,到处运行)。
docker容器可以将同一个构建版本用于开发、测试、预发布、生产等任何环境,并且做到了与底层操作系统的解耦。在此基础上,还进一步发展出了CaaS(容器即服务)技术。
将 Docker 比喻为代码方面的集装箱运输系统,确实非常形象恰当。
Docker将任何类型的应用和它的依赖打包成为一个标准的、轻量级的、便携的、独立的集装箱,让各类应用都支持一套标准的运作模式,只要安装了Docker程序的服务器都可以运行。
开发者开发和测试完成的Docker容器,可以无差别的运行在测试环境、生产环境,无论服务器是物理机、虚拟机,或者是以上各种类型服务器的组合。应用开发过程只需执行一次,即可保证应用在任何环境上运行的一致性。对于运维人员,则只需要配置一次不同环境的服务器,即可运行任何Docker容器。
当容器和服务器的数量达到一定规模的时候,就会碰到管理的问题,即如何有效管理大量的服务器和容器,保证应用的稳定运行、方便升级和故障的快速解决。
容器编排工具提供图形化界面或者命令行来管理容器和服务器集群,提供容器配置、任务发布、服务发现、负载均衡、系统监控和故障恢复、声明式系统配置以及有关容器部署和性能的规则和约束定义机制等。
google开发的Kubernetes从众多编排工具中脱颖而出。相比Kubernetes,Docker原生编排工具Swarm在集群搭建和使用上要相对简单一些,学习和部署成本相对低一些。较新版本的Docker已经集成了Swarm。Swarm支持跨多个主机进行编排,管理较小规模的容器集群也绰绰有余,对于初学者也可以很快的部署和运行。