Docker知识

什么是docker

Docker是一个开源的应用容器引擎,基于LXC(Linux Container)内核虚拟化技术实现,提供一系列更强的功能,比如镜像、 Dockerfile等;
Docker理念是将应用及依赖包打包到一个可移植的容器中,可发布到任意Linux发行版Docker引擎上。使用沙箱机制运行程序, 程序之间相互隔离;
Docker使用Go语言开发。

docker架构和内部组建

Docker采用C/S架构(服务端与客户端,b/s浏览器和服务器),Dcoker daemon作为服务端接受来自客户端请求,并处理这些请求,比如创建、运行容器等。客户端为用 户提供一系列指令与Docker daemon交互。
LXC:Linux容器技术,共享内核,容器共享宿主机资源,使用namespace和cgroups对资源限制与隔离。
Cgroups(control groups):Linux内核提供的一种限制单进程或者多进程资源的机制;比如CPU、内存等资源的使用限制。 NameSpace:命名空间,也称名字空间,Linux内核提供的一种限制单进程或者多进程资源隔离机制;一个进程可以属于多个命 名空间。Linux内核提供了六种NameSpace:UTS、IPC、PID、Network、Mount和User。
AUFS(advanced multi layered unification filesystem):高级多层统一文件系统,是UFS的一种,每个branch可以指定readonly(ro 只读)、readwrite(读写)和whiteout-able(wo隐藏)权限;一般情况下,aufs只有最上层的branch才有读写权限,其他branch 均为只读权限。 UFS(UnionFS):联合文件系统,支持将不同位置的目录挂载到同一虚拟文件系统,形成一种分层的模型;成员目录称为虚拟 文件系统的一个分支(branch)。

docker的优点

  • 持续集成
    在项目快速迭代情况下,轻量级容器对项目快速构建、环境打包、发布等流程就能提高工作效率。
  • 版本控制
    每个镜像就是一个版本,在一个项目多个版本时可以很方便管理。
  • 可移植性
    容器可以移动到任意一台Docker主机上,而不需要过多关注底层系统。
  • 标准化
    应用程序环境及依赖、操作系统等问题,增加了生产环境故障率,容器保证了所有配置、依赖始终不变。
  • 隔离性与安全
    容器之间的进程是相互隔离的,一个容器出现问题不会影响其他容器。

    虚拟机与容器的区别

    以KVM举例,与Docker对比

  • 启动时间
    Docker秒级,KVM分钟级。
  • 轻量级
    容器镜像大小通常以M为单位,虚拟机以G为单位。
    容器资源占用小,要比虚拟机部署更快速。
  • 性能
    容器共享宿主机内核,系统级虚拟化,占用资源少,没有Hypervisor层开销,容器性能基本接近物理机; 虚拟机需要Hypervisor层支持,虚拟化一些设备,具有完整的GuestOS,虚拟化开销大,因而降低性能,没有容器性能好。
  • 安全性 由于共享宿主机内核,只是进程级隔离,因此隔离性和稳定性不如虚拟机,容器具有一定权限访问宿主机内核,存在一定安全 隐患。
  • 使用要求
    KVM基于硬件的完全虚拟化,需要硬件CPU虚拟化技术支持; 容器共享宿主机内核,可运行在主流的Linux发行版,不用考虑CPU是否支持虚拟化技术。

    应用场景

  • 应用打包与部署自动化
    构建标准化的运行环境; 现在大多方案是在物理机和虚拟机上部署运行环境,面临问题是环境杂乱、完整性迁移难度高等问题,容器即开即用。
  • 自动化测试和持续集成/部署
    自动化构建镜像和良好的REST API,能够很好的集成到持续集成/部署环境来。
  • 部署与弹性扩展
    由于容器是应用级的,资源占用小,弹性扩展部署速度要更快。
  • 微服务 Docker这种容器华隔离技术,正式应对了微服务理念,将业务模块放到容器中运行,容器的可复用性大大增加了业务模块扩展性。

    什么是镜像?

    简单说,Docker镜像是一个不包含Linux内核而又精简的Linux操作系统。

镜像分层

Dockerfile 中的每一行都产生一个新层
FROM alpine:latest 132h1rk1hb3rkjb
MAINTAINER mxy 12hb1b2b12b4y1b42k
CMD echo "hello Docker!" 12jhvkj1241

ro只读 rw读写 最上的是容器层 下面是那个是image 层
分层的好处 层如果重复的话,会共享,压力会小很多

原文地址:https://www.cnblogs.com/mxyindex/p/11051897.html

时间: 2024-11-05 14:59:41

Docker知识的相关文章

Docker知识-1

[编者的话]本文用图文并茂的方式介绍了容器.镜像的区别和Docker每个命令后面的技术细节,能够很好的帮助读者深入理解Docker. 这篇文章希望能够帮助读者深入理解Docker的命令,还有容器(container)和镜像(image)之间的区别,并深入探讨容器和运行中的容器之间的区别. 当我对Docker技术还是一知半解的时候,我发现理解Docker的命令非常困难.于是,我花了几周的时间来学习Docker的工作原理,更确切地说,是关于Docker统一文件系统(the union file sy

认识大明星——轻量级容器docker知识树点亮

docker是一个轻量级容器,属于操作系统层面的虚拟化技术,封装了文件系统(AUFS)以及网络互联,进程隔离等特性. 传统虚拟化架构: docker虚拟化架构: 可以看出,docker是没有Guest OS一层的,它属于宿主机上面开启的一个单独进程,共享宿主机的内核和硬件. 传统虚拟化技术每个实例都要虚拟出一套OS的硬件支持,当一台宿主机开启多个虚拟机的时候,这些硬件虚拟无疑是重复的,且占用了大量宿主机的资源. 因此,docker这种轻量级的容器技术会更高效地使用宿主机的内核和硬件资源.同时由于

8 个你可能不知道的 Docker 知识

自从上世纪 90 年代硬件虚拟化被主流的技术广泛普及之后,对数据中心而言,发生的最大的变革莫过于容器和容器管理工具,例如:Docker.在过去的一年 内,Docker 技术已经逐渐走向成熟,并且推动了大型初创公司例如 Twitter 和 Airbnb 的发展,甚至在银行.连锁超市.甚至 NASA 的数据中心都赢得了一席之地.当我几年前第一次直到 Docker 的时候,我还对 Docker 的未来持怀疑的态度,我认为他们是把以前的 Linux 容器的概念拿出来包装了一番推向市场.但是使用 Dock

docker知识全面讲解

说明:我无法使文档变得有趣,所以我只能尽力让它变得简洁和清晰,虽然你看着内容还是很多,但是只要你一步步的做下去,肯定会对docker有更深的了解.这篇文档主要是说明docker的使用,没有实际例子,下篇文档会以实例为主. 注:部分图片来自于网络,感谢分享的人. 志不坚者智不达!!! 1.docker介绍 1.1 虚拟机与容器的对比 上图所示,容器技术相较于VM少了客户机系统这一层:底层用到了linux的LXC的容器技术,所以docker目前只能运行于linux的64位系统之上(能运行32位系统也

docker 和 k8s 知识框架图

图片来自51CTO技术群 Docker 知识框架图   链接    http://down.51cto.com/data/2296132 k8s 知识框架图   链接   http://down.51cto.com/data/2296134

docker入门到精通

在这些博文中,我学会了docker * [docker 官网](https://www.docker.com/)    这里也是最权威的docker知识* [docker安装源地址](https://www.docker.com/)* [docker hub](https://hub.docker.com/)* [docker中文社区](https://hub.docker.com/)* [k8s中文社区](https://www.kubernetes.org.cn/) ************

使用Docker在本地搭建Hadoop分布式集群

学习Hadoop集群环境搭建是Hadoop入门必经之路.搭建分布式集群通常有两个办法: 要么找多台机器来部署(常常找不到机器) 或者在本地开多个虚拟机(开销很大,对宿主机器性能要求高,光是安装多个虚拟机系统就得搞半天……). 那么,问题来了! 有没有更有可行性的办法? 提到虚拟化,Docker最近很是火热!不妨拿来在本地做虚拟化,搭建Hadoop的伪分布式集群环境.虽然有点大材小用,但是学习学习,练练手也是极好的. 文章比较长,建议先倒杯水,听我慢慢到来…… 先说一下我的思路吧: 先使用Dock

CentOS 7上搭建Docker环境

一.Docker介绍和安装 http://linux.cn/article-4340-1.html Docker 是一个开源工具,它可以让创建和管理 Linux 容器变得简单.容器就像是轻量级的虚拟机,并且可以以毫秒级的速度来启动或停止.Docker 帮助系统管理员和程序员在容器中开发应用程序,并且可以扩展到成千上万的节点. 容器和 VM(虚拟机)的主要区别是,容器提供了基于进程的隔离,而虚拟机提供了资源的完全隔离.虚拟机可能需要一分钟来启动,而容器只需要一秒钟或更短.容器使用宿主操作系统的内核

Docker开发实践

这篇是计算机类的优质预售推荐<Docker开发实践>. Docker最佳实践图书,系统讲解Docker知识,更有Kubernetes.Shipyard.Machine等高级技术. 编辑推荐 国内最强云加速+云存储"迅雷云"团队倾力打造 全面讲解Docker原理.操作,精选实战案例 详解网络.安全.API.Kubernetes.shipyard.Machine+Swarm+Compose 内容简介 本书详细介绍高级容器引擎Docker的各方面技术,从概念介绍到实战,讨论doc