每天学一点Docker(4)-深入了解容器概念

什么是容器?

容器是一个自包含,可移植,轻量级的软件打包技术。是应用程序在任何地方几乎以相同方式运行。开发人员在开发机上创建好容器,无需任何修改就能在虚拟机,云服务器或公有云主机上运行。

容器与虚拟机

容器有两部分组成:

1.应用程序本身

2.应用程序所依赖的环境,库

容器在主机中运行,与操作系统中其他的进程隔离,这一点区别于虚拟机。

传统的虚拟机技术,如:vmvare,他是创建一个完整的虚拟机,为了运行应用程序,部署系统,还需要安装整个操作系统(几十GB),

下图展示了两者的区别:

从右图中可以看见,所有容器都共享一个系统,对于虚拟机来说,都是一个单独的系统。

启动容器不需要启动整个系统,所以容器部署和启动速度更快,开销更小,也更容易迁移。

为什么要使用容器技术?

因为方便。这取决于容器使得软件具备超强的可移植能力。

现如今软件开发的部署相对于以前来说,要复杂很多,开发人员需要使用多种服务构建和组装应用,而且系统还可能会部署到不同的环境中。

而且这个服务都有自己依赖的库和环境,还有可能存在着动态迁移到不同的环境中。

大家做过软件开发的都知道,软件部署是一件很麻烦的事情,那么有没有一种技术使得软件部署很平滑呢?

开发人员受到了集装箱的启发。

以前运送货物,会担心货物类型不同而担心损失,比如运送的食物被其他货物压坏了。后来人们发明了集装箱,标准集装箱可以被高效地装卸、重叠和长途运输。现代化的起重机可以自动在卡车、轮船和火车之间移动集装箱。集装箱被誉为运输业与世界贸易最重要的发明。

Docker 将集装箱思想运用到软件打包上,为代码提供了一个基于容器的标准化运输系统。Docker 可以将任何应用及其依赖打包成一个轻量级、可移植、自包含的容器。容器可以运行在几乎所有的操作系统上。

容器意味着环境隔离和可重复性。开发人员只需为应用创建一次运行环境,然后打包成容器便可在其他机器上运行。另外,容器环境与所在的 Host 环境是隔离的,就像虚拟机一样,但更快更简单。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏技术翻译

Linux容器的发展及其未来趋势

Linux容器是操作系统级虚拟化在单个Linux主机上提供多个独立Linux环境的技术。与虚拟机(VM)不同,容器不运行专用客户操作系统。相反,他们共享主机操作...

5120
来自专栏黄希彤的专栏

怎么生成主机最快

为了应付突发的访问压力,我们常常会使用弹性伸缩功能,在系统遭遇突发压力的时候迅速生成新的主机加入集群来分担压力。但是随着系统越来越大,打包的系统镜像也越来越大,...

6380
来自专栏Debian社区

Linux 容器 vs 虚拟机 — 谁更胜一筹

自从 Linux 上的 容器 变得流行以来,了解 Linux 容器和虚拟机 之间的区别变得更加棘手。本文将向您提供详细信息,以了解 Linux 容器和虚拟机之间...

1462
来自专栏点点滴滴

关于Windows系统安装(一)

1166
来自专栏技术翻译

考虑将Docker引入您的数据科学工作流程

作为数据科学家的一个重要问题是正确配置数据科学环境。有时这意味着安装了很多软件包,等待软件包编译,处理模糊的错误,设置一切正常工作......大多数时候,这是一...

900
来自专栏Java工程师日常干货

docker化你的java应用(上)前言走进docker

在各种技术大会(互联网架构,云计算等等),哪都少不了docker的身影。docker为啥这么火?因为它解决了大部分企业的痛点:快速的持续集成,服务的弹性伸缩,部...

1061
来自专栏祝威廉

其实连Docker公司都把Docker用错啦

好吧,我承认我标题党了。但是这篇内容应该让你从一个新的角度理解Docker的本质是什么。

772
来自专栏北京马哥教育

高中生也能读懂的Docker入门教程

Docker 是 Golang 编写的, 自 2013 年推出以来,受到越来越多的开发者的关注。如果你关注最新的技术发展,那么你一定听说过 Docker。不管...

3907
来自专栏Python中文社区

基于docker+gunicorn部署sanic项目

最近云服务提供商在打价格战,我在某云上花了很少的钱租了一个月的云服务器: 公网ip是: 116.85.42.182, 以下我以116.85.42.182这个ip...

1312
来自专栏腾讯云安全的专栏

ShadowBrokers 泄漏的美国 NSA 黑客工具包浅析

2694

扫码关注云+社区

领取腾讯云代金券