实践经验:Docker是什么以及到底有什么用?

发表于:2022-1-30 09:08

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:无敌大白    来源:掘金

#
Docker
  最近看了些网上的教程,对Docker有了一定实践经验,也踩过些坑,总算是圆满完成了百分之九十的工作,今天就给大家分享一下经验。

  Docker到底是什么
  我们假设一种场景,你开发时候用的python3.6版本,各种依赖也是根据3.6的版本来装的,代码也是按照3.6的版本来写的。
  当你写完需要部署上线的时候,由于线上服务器是python2的版本,而你写的代码里有个引入数据库依赖的库只支持3.6的版本,不能支持python2的
  版本,运维部署时候报错了,就找你说你写的有问题,你觉得我的电脑上能运行啊,没问题啊。
  反复确认后发现,服务器环境有问题,这版本都对不上嘛,那怎么办呢(我们不考虑再装一个3.6的情况)?

  虚拟机
  在虚拟机里装你的依赖,这样既不会影响原来的python2运行,也可以运行python3.6。但这种方法费时费力不说,还费资源。
  我们假设代码运行可能真正使用的内存只需要1MB,但是这个虚拟机依然还是需要几百MB才能运行。
  因为虚拟机是一个完整的操作系统,一些系统级别的操作步骤无法省略,比如用户登录。可见这种方式不是能很有效地解决我们的问题。

  Linux容器
  针对上述虚拟机的这些缺点,Linux发展出另一种虚拟化技术,Linux容器(Linux Containers,缩写为 LXC)。
  Linux容器与虚拟机的区别就是它并不是模拟出一个完整的操作系统,而是对进程进行隔离,对于被运行的这个进程来说,他接触到的容器里的环境都是虚拟的。
  由于容器是进程级别的,所以相对于虚拟机启动整个操作启动而言,启动更快,也不会浪费不必要的内存资源。

  Docker是什么
  Docker就是对Linux容器的一种封装,提供简单易用的容器使用接口,Docker是目前最流行的linux容器解决方案,Docker将应用程序与该程序的依赖,打包在一个文件里面(镜像)。
  运行这个文件,就会生成一个虚拟容器。程序在这个虚拟容器里运行,就好像在真实的物理机上运行一样,有了 Docker,就不用担心环境问题。
  总体来说,Docker的接口相当简单,用户可以方便地创建和使用容器,把自己的应用放入容器。容器还可以进行版本管理、复制、分享、修改,就像管理普通的代码一样。

  Docker解决了什么问题
  搭建微服务架构
  在实际工作中,一般用来搭建测试环境,一来测试环境并发不高,没有性能要求,二来就算每个服务就算只用一台机器,那如果有来100个微服务就需要100台机子,这是一笔比较大的支出了。
  利用Docker启用多个容器,每一个容器对应一个服务,在一台机器上可以跑多个服务,资源利用充分,也节省服务器开支。

  提供一次性的环境
  比如,本地测试他人的软件、持续集成的时候提供单元测试和构建的环境。

  提供弹性的云服务
  因为Docker容器可以随时开关,很适合动态扩容或者缩容。

  本文内容不用于商业目的,如涉及知识产权问题,请权利人联系51Testing小编(021-64471599-8017),我们将立即处理
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号