docker不是一种操作系统;操作系统是一组主管并控制计算机操作、运用和运行硬件、软件资源和提供公共服务来组织用户交互的相互关联的系统软件程序,而docker是一个用于开发,交付和运行应用程序的开放平台,借助Docker还可以与管理应用程序相同的方式来管理基础架构。
本教程操作环境:linux7.3系统、docker19.03版、Dell G3电脑。
docker不是一种操作系统
docker本质上是一个附加系统,准确来说是一个用于开发,交付和运行应用程序的开放平台;Docker可以使开发者能够将应用程序与基础架构分开,从而可以快速交付软件;借助Docker还可以与管理应用程序相同的方式来管理基础架构。
docker并不是一个操作系统,docker是一个容器,可以把它比喻成虚拟的硬件,在硬件(主机)上安装操作系统,redis的镜像肯定是一个系统装了redis,并不是单单一个redis,可以进入该镜像使用相关命令查看系统信息。
操作系统是什么
操作系统(英语:Operating System,缩写:OS)是一组主管并控制计算机操作、运用和运行硬件、软件资源和提供公共服务来组织用户交互的相互关联的系统软件程序。根据运行的环境,操作系统可以分为桌面操作系统,手机操作系统,服务器操作系统,嵌入式操作系统等。
docker是什么
Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的 Linux或Windows操作系统的机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。
扩展知识
Docker 的优点
Docker 是一个用于开发,交付和运行应用程序的开放平台。Docker 使您能够将应用程序与基础架构分开,从而可以快速交付软件。借助 Docker,您可以与管理应用程序相同的方式来管理基础架构。通过利用 Docker 的方法来快速交付,测试和部署代码,您可以大大减少编写代码和在生产环境中运行代码之间的延迟。
特性
在docker的网站上提到了docker的典型场景:
-
Automating the packaging and deployment of applications(使应用的打包与部署自动化)
-
Creation of lightweight, private PAAS environments(创建轻量、私密的PAAS环境)
-
Automated testing and continuous integration/deployment(实现自动化测试和持续的集成/部署)
-
Deploying and scaling web apps, databases and backend services(部署与扩展webapp、数据库和后台服务)
由于其基于LXC的轻量级虚拟化的特点,docker相比KVM之类最明显的特点就是启动快,资源占用小。因此对于构建隔离的标准化的运行环境,轻量级的PaaS(如dokku), 构建自动化测试和持续集成环境,以及一切可以横向扩展的应用(尤其是需要快速启停来应对峰谷的web应用)。
构建标准化的运行环境,现有的方案大多是在一个baseOS上运行一套puppet/chef,或者一个image文件,其缺点是前者需要base OS许多前提条件,后者几乎不可以修改(因为copy on write 的文件格式在运行时rootfs是read only的)。并且后者文件体积大,环境管理和版本控制本身也是一个问题。
PaaS环境是不言而喻的,其设计之初和dotcloud的案例都是将其作为PaaS产品的环境基础
因为其标准化构建方法(buildfile)和良好的REST API,自动化测试和持续集成/部署能够很好的集成进来
因为LXC轻量级的特点,其启动快,而且docker能够只加载每个container变化的部分,这样资源占用小,能够在单机环境下与KVM之类的虚拟化方案相比能够更加快速和占用更少资源
推荐学习:《docker视频教程》