🔥你真的搞明白我们为什么要使用docker么?

前言

docker是为前端量身定做的

想象一下如下的场景

  1. 小明是一个前端,接了一个项目,这是个外包项目,客户有自己的服务器,但是客户的服务器比较老,环境配置又与小明的不同,小明看了一眼客户的服务器,一言难尽呀,让一个本来就不喜欢配置服务器的前端来搞这些不是难为人么,离时间节点越来越近了,客户也开始催了,小明欲哭无泪(环境不一致)

  2. 小明百度,谷歌,chatgpt都用上了,终于费了九牛二虎之力把自己的项目给客户部署上去了,小明长长的出了一口气,终于搞定了,太难了,费了两天时间呀,这时间也没和客户多要钱,亏了呀。一天后,小明接到客户电话,说你部署了你的项目以后,怎么我服务器上的其他项目都访问不到了,客户说要扣钱,小明急出了一身冷汗(环境未隔离)

  3. 今天客户打电话给小明说,你的项目有bug呀,有客户投诉,你得把这个bug改一下,但是一定要自测好哈,别到线上了又有bug。小明想,还以为是个简单的项目,当时也没搞开发环境和生产环境,主要这环境也难搞呀,现在也没法拿真实数据测试,到时候不会又要扣我钱吧(开发环境和生产环境难搞)

不知道你有没有遇到过上面这些情况,真是让人捏了一把汗呀。但是为了让大家避免这些情况的发生,解决上面这些难点,节约大家的时间,好好摸鱼,我们推荐你使用docker,接下来有请我们今天的主角

1、 什么是docker?

Docker 是一个开源的应用容器引擎

Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中

2、 为什么我们要使用docker?

环境配置如此麻烦,换一台机器,就要重来一次, 费力费时。

于是很多人想到,能不能从根本上解决问题,软件可以带环境安装?也就是说安装的时候,把原始环境一模一样地复制过来。开发人员利用Docker可以消除协作编码时"在我的机器上可以正常工作"的问题。

将应用运行在Docker容器上面,而Docker容器在任何操作系统上都是一致的,这就实现了跨平台、跨服务器。

js 复制代码
Docker的理念是:一处封装、处处运行。

docker的优点

  1. 简化部署:Docker可以将应用程序及其依赖项打包成一个独立的容器,可以在任何环境中运行,从而简化了部署过程。不需要担心环境差异,只需在目标机器上安装Docker即可。
  2. 提高开发效率:Docker可以快速创建、启动和停止容器,使开发人员可以更快地进行开发、测试和调试。容器可以快速重现,因此开发人员可以轻松共享开发环境,避免了"在我的机器上可以运行"的问题。
  3. 资源利用率高:Docker容器是轻量级的,可以共享主机的操作系统内核,因此相比于传统的虚拟化技术,Docker的资源消耗更少,可以更高效地利用主机的计算资源。

3、 docker的三大要素

  1. Docker镜像(Docker Image):Docker镜像是一个只读的模板,包含了构建和运行Docker容器所需的所有文件和依赖项。可以将镜像看作是一种类似于操作系统的快照,可以用来创建和运行容器。
  2. Docker容器(Docker Container):Docker容器是从Docker镜像创建的运行实例。容器是独立的、轻量级的运行环境,可以包含应用程序及其所有依赖项。容器可以被快速启动、停止、删除和重启,具有隔离性和可移植性。
  3. Docker仓库(Docker Registry):Docker仓库是用于存储和共享Docker镜像的地方。它类似于代码仓库,可以将镜像推送到仓库中并从仓库中拉取镜像。Docker官方提供了公共的仓库,称为Docker Hub,同时也可以搭建私有的仓库来管理自己的镜像。

这三个要素共同构成了Docker的基本架构和运行环境。通过使用Docker镜像和容器,可以实现快速部署、开发和管理应用程序,并提供了高度可移植性和资源利用率,从而使得应用程序的开发和交付更加简单和高效

4、docker的使用场景有哪些?

  1. 环境一致性:Docker可以将应用及其依赖打包成一个容器,使得前端开发团队可以在不同的开发环境中保持一致的开发环境,避免因为环境不同导致的问题。

  2. 快速部署:Docker可以将应用打包成一个镜像,然后在任何支持Docker的环境中快速部署。前端开发团队可以使用Docker来快速部署自己的应用,减少了配置和部署的时间。

  3. 高可用性:Docker可以使用容器编排工具,如Kubernetes,来管理多个容器的部署和运行。前端开发团队可以使用Docker来实现应用的高可用性,通过自动扩缩容、故障转移等机制来保证应用的可用性。

  4. 开发和测试环境隔离:Docker可以为每个开发和测试环境提供一个独立的容器,避免了不同环境之间的相互影响。前端开发团队可以使用Docker来隔离开发和测试环境,提高开发和测试的效率。

  5. 跨平台开发:Docker可以在不同的操作系统中运行,包括Windows、Mac和Linux等。前端开发团队可以使用Docker来进行跨平台的开发,无需担心应用在不同操作系统上的兼容性问题。

5、总结

有人觉得我这篇文章写得好水呀,完全就是一篇科普文,也许就是粘贴复制来的

说一下我的感受吧,我认识docker已经很长时间了,但是没有真正用到过,主要是我接触的项目还没有用到docker的,这是第一点。但是随着最近研究CI/CD的深入,发现好多人都用docker,因为我不喜欢把项目变复杂,所以我就一直想弄明白,为什么非要用docker呢,不用不行么,到底有什么好处呢,使用场景都有哪些,什么时候可以不使用呢

我们做技术比较忌讳的就是为了用而用,到底为什么用也不知道。有人说我用了就知道了,对这样的言论请say no,在用之前你可以花半天甚至更长的时间调研一下才是正确的选择,要不可能你用了半天可能会得出还不如以前的方式方便呢

参考

相关推荐
Kagol2 分钟前
TinyEditor v4.0 alpha 版本发布,更强大的表格、更丰富的表情、体验更好的图片/视频/文件上传功能
前端·开源
然我12 分钟前
路由还能这么玩?从懒加载到路由守卫,手把手带你解锁 React Router 进阶技巧
前端·react.js·面试
良木林1 小时前
JavaScript书写基础和基本数据类型
开发语言·前端·javascript
潘yi.3 小时前
Kubernetes高级调度1
云原生·容器·kubernetes
brzhang8 小时前
我操,终于有人把 AI 大佬们 PUA 程序员的套路给讲明白了!
前端·后端·架构
止观止8 小时前
React虚拟DOM的进化之路
前端·react.js·前端框架·reactjs·react
goms8 小时前
前端项目集成lint-staged
前端·vue·lint-staged
谢尔登8 小时前
【React Natve】NetworkError 和 TouchableOpacity 组件
前端·react.js·前端框架
Lin Hsüeh-ch'in9 小时前
如何彻底禁用 Chrome 自动更新
前端·chrome
AI视觉网奇9 小时前
git 访问 github
运维·开发语言·docker