今天继续给大家介绍Linux运维相关知识,本文主要内容是Docker基础知识。
一、Docker概述
Docker是一个开源的容器引擎,也是一种虚拟化技术,可以使得开发人员将应用和开发环境全部打包安装到一个可移植的容器中,然后发布到其他的Linux平台上。这样,就解决了一个应用在开发环境上运行正常,但是在测试和生产环境中运行出现BUG的问题,极大的解决了给一个应用配置各种依赖环境的复杂性,也解决了应用和系统软件、硬件不兼容的问题。Docker的容器类似于虚拟机,也使用了沙盒机制,不同的容器之间没有接口,独立运行,互不干扰,一台容器的崩溃不会影响到其他的容器。Docker容器的运行几乎没有性能开销,可以很容易的在机器和数据中心上运行,并且不依赖与任何语言、框架和系统。
Docker由dotCloud公司开发,基于LXC的高级容器引擎,源代码托管在Github平台上,使用GO语言开发并遵循Apache2.0协议开源。
Docker官网为:https://www.docker.com/,其页面如下所示:
Docker源码网址为:https://github.com/moby/moby,其页面如下所示:
二、Docker特性
Docker的特性如下所示:
1、文件系统隔离
每个进行容器运行在一个完全独立的文件系统里。
2、资源隔离
使用cgroup(会在之后的文章中介绍到)来分配系统硬件资源,包括内存、CPU、磁盘IO等。
3、网络隔离
每个进程容器运行在自己的网络空间,有自己的虚拟接口和IP地址。
4、日志记录
Docker会收集和记录每个容器的标准输入输出,并用于检索。
5、变更管理
容器文件系统的变更可以提交到新的镜像中,并可以重复使用以创建更多的容器,无需使用模板或手动配置。
6、交互式shell
Docker可以分配一个虚拟终端并关联到任何容器的标准输入输出(即使用命令行页面控制该容器)上。
三、Docker优点与缺点
Docker有以下优点:
1、代码量小,运行速度快。Docker启动一个容器实例的时间很短,大约只需要1-2秒。
2、Docker适应性强。可以运行在笔记本电脑、数据中心的虚拟机乃至任何的云上。
3、Docker支持Linux、Unix和Windows操作系统。
4、Google、微软、亚马逊和IBM都支持Docker。
Docker有以下缺点:
Docker适用于计算,但是不适用于存储。Docker不适合安装数据库等需要数据存储的软件或服务。Docker不适合存储大量数据,因此Docker容器产生的数据、日志等应该放在容器外。我们可以通过NFS、映射磁盘分区等方式解决Docker的数据存储问题。
原创不易,转载请说明出处:https://blog.csdn.net/weixin_40228200
————————————————
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/weixin_40228200/article/details/124149290