容器入门教程

文章目录


前言

在过去几年中,容器已经成为现代化应用程序的代名词。现如今已经很少有公司不在使用容器了,哪怕有,他们也一定是正处于评估使用容器的阶段。

一、容器是什么?

如今人们在谈论容器时,大多数时候指的都是“Docker容器”。尽管在Linux系统中,容器的历史可以追溯到十多年以前,然而真正使得容器广为人知的,是因为Docker。

二、发展

1.背景

容器技术的起源

假设你们公司正在秘密研发下一个“头条”APP,我们姑且称为头条新闻,程序员自己从头到尾搭建了一套环境开始写代码,写完代码后程序员要把代码交给测试同学测试,这时测试同学开始从头到尾搭建这套环境,测试过程中出现问题程序员也不用担心,大可以一脸无辜的撒娇,“明明在人家的环境上可以运行的”。

测试同学测完后终于可以上线了,这时运维同学又要重新从头到尾搭建这套环境,费了九牛二虎之力搭建好环境开始上线,糟糕,上线系统就崩溃了,这时心理素质好的程序员又可以施展演技了,“明明在人家的环境上可以运行的”。

从整个过程可以看到,不但我们重复搭建了三套环境还要迫使程序员转行演员浪费表演才华,典型的浪费时间和效率,聪明的程序员是永远不会满足现状的,因此又到了程序员改变世界的时候了,容器技术应运而生。

容器的最初想法是把操作系统分割成几块,每一块都可以安全地运行应用程序,它们之间不会产生相互干扰。这种隔离的办法是用命名空间和控制组来实现的。命名空间和控制组是Linux内核的功能。命名空间允许操作系统的各个组件被切分成若干块,从而创建隔离的工作区。然后,控制组可以用来对资源的使用进行细粒度的控制,从而有效防止所有系统资源被一个容器霸占。

对于开发者而言,直接调用系统内核的功能可并不是件令人愉快的事情。因此引入了Linux容器,它是现在人们所熟知的“容器”的底层技术,极大地简化了与系统内核交互的复杂性。

正是Docker通过把这些复杂的内核功能封装成对开发者友好的组件,才使得容器流行起来。Docker对容器的定义是一个“标准化的软件单元”。“软件单元”更准确的意思是指运行在容器中的服务或者应用能够完全地、私有地访问操作系统视图。换句话说,你可以把容器看作是经过封装的,可以被独立部署的一个组件,这个组件通过系统级别的虚拟化技术使其可以作为一个独立的实例来运行并和其他实例共享同一个系统内核。

        容器使用写时复制的文件系统策略,这就允许多个容器实例可以共享数据,因为只有当容器需要修改或者写入新数据时,操作系统才会复制一个数据的副本。所以从内存和磁盘空间使用的角度来看容器是非常轻量级的,这也是为什么容器可以非常快地启动,快速启动是容器带来的巨大好处之一。

使用 Docker 创建容器时,可以使用 –isolation 参数来指定隔离模式(进程隔离模式或 Hyper-V 隔离模式均可),使用以下命令选择进程隔离或hyperv隔离模式创建容器:

docker run -it --isolation=process mcr.microsoft.
  • 8
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 38
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 38
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

倚楼听风雨108

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值