怎么用通俗易懂的话来解释Docker(容器)技术

 我来答
约定20125
2018-05-19 · TA获得超过1.5万个赞
知道大有可为答主
回答量:1.1万
采纳率:96%
帮助的人:2949万
展开全部
官网的介绍是这样的:
Docker is an open platform for developers and sysadmins to build, ship, and run distributed applications....
其实看完这句话还是不明白究竟是啥的,下面就慢慢解释。不过长话短说的话,把他想象成一个用了一种新颖方式实现的超轻量虚拟机,在大概效果上也是正确的。当然在实现的原理和应用上还是和VM有巨大差别的,并且专业的叫法是应用容器(Application Container)。
为啥要用容器?
那么应用容器长什么样子呢,一个做好的应用容器长得就好像一个装好了一组特定应用的虚拟机一样。比如我现在想用MySQL那我就找个装好MySQL的容器,运行起来,那么我就可以使用 MySQL了。
那么我直接装个 MySQL不就好了,何必还需要这个容器这么诡异的概念?话是这么说,可是你要真装MySQL的话可能要再装一堆依赖库,根据你的操作系统平台和版本进行设置,有时候还要从源代码编译报出一堆莫名其妙的错误,可不是这么好装。而且万一你机器挂了,所有的东西都要重新来,可能还要把配置在重新弄一遍。但是有了容器,你就相当于有了一个可以运行起来的虚拟机,只要你能运行容器,MySQL的配置就全省了。而且一旦你想换台机器,直接把这个容器端起来,再放到另一个机器就好了。硬件,操作系统,运行环境什么的都不需要考虑了。
在公司中的一个很大的用途就是可以保证线下的开发环境、测试环境和线上的生产环境一致。当年在 Baidu 经常碰到这样的事情,开发把东西做好了给测试去测,一般会给一坨代码和一个介绍上线步骤的上线单。结果代码在测试机跑不起来,开发就跑来跑去看问题,一会儿啊这个配置文件忘了提交了,一会儿啊这个上线命令写错了。找到了一个 bug 提上去,开发一看,啊我怎么又忘了把这个命令写在上线单上了。类似的事情在上线的时候还会发生,变成啊你这个软件的版本和我机器上的不一样……在 Amazon 的时候,由于一个开发直接担任上述三个职位,而且有一套自动化部署的机制所以问题会少一点,但是上线的时候大家还是胆战心惊。
若果利用容器的话,那么开发直接在容器里开发,提测的时候把整个容器给测试,测好了把改动改在容器里再上线就好了。通过容器,整个开发、测试和生产环境可以保持高度的一致。
此外容器也和VM一样具有着一定的隔离性,各个容器之间的数据和内存空间相互隔离,可以保证一定的安全性。
力控科技
2024-08-19 广告
ForceSCADA是力控科技信创产品的重要组成部分,具备完全自主知识产权,支持部署在Linux桌面版、服务器版、嵌入式等系统架构下。使用ForceSCADA可以搭建创新性高、扩展性佳、融合度强的SCADA平台,进而构建高效、智能化的监控中... 点击进入详情页
本回答由力控科技提供
谐云
2024-09-13 · 中国数字基础建设云原生软件领导者
谐云
向TA提问
展开全部
Docker是一种开源的容器化技术,简单来说,它可以把应用程序和它运行所需的环境“打包”在一个独立的盒子里,这个盒子就叫做“容器”。这样,无论你在什么电脑上运行这个容器,它里面的应用程序都会正常工作,不会因为电脑环境的不同而出问题。
docker的优点:
轻量级就是docker容器占用的cpu内存很小;
可移植就是docker镜像,搬到哪里都能用,能保持跨环境的一致性,从而实现持续部署与测试。
自给自足就是镜像里已经包含了应用运行的所有依赖包括操作系统,无需其他依赖了,所以搬到哪儿都能用。
docker核心概念:
容器是镜像运行时的实体,镜像(Image)和容器(Container)的关系,就像是面向对象程序设计中的类和实例一样,镜像是静态的定义,容器是镜像运行时的实体。容器类似于一个沙箱,docker利用容器来运行和隔离应用。用户可以通过 CLI(docker客户端)或是 API 启动、停止、移动或删除容器。
仓库是集中存放镜像文件的地方,镜像构建完成后,可以很容易的在当前宿主上运行,但是, 如果需要在其他服务器上使用这个镜像,我们就需要一个集中的存储、分发镜像的服务。
Docker仓库分为公开仓库和私有仓库,顾名思义,公开仓库就是大家都能访问的,私有仓库是只有指定的群体能访问。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
胡矣
2021-04-02 · 超过19用户采纳过TA的回答
知道答主
回答量:32
采纳率:100%
帮助的人:4.6万
展开全部

“极简k8s入门”系列教程是一套帮助学习人员快速入门k8s的教程。“极简k8s入门”视频教程适合不熟悉容器编程的学习者学习。“极简k8s入门”帮助学习者快速上手,能够使用k8s进行部署及管理应用。

本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式