🔥你真的搞明白我们为什么要使用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,在用之前你可以花半天甚至更长的时间调研一下才是正确的选择,要不可能你用了半天可能会得出还不如以前的方式方便呢

参考

相关推荐
正小安1 小时前
如何在微信小程序中实现分包加载和预下载
前端·微信小程序·小程序
_.Switch3 小时前
Python Web 应用中的 API 网关集成与优化
开发语言·前端·后端·python·架构·log4j
雪域迷影3 小时前
PostgreSQL Docker Error – 5432: 地址已被占用
数据库·docker·postgresql
一路向前的月光3 小时前
Vue2中的监听和计算属性的区别
前端·javascript·vue.js
长路 ㅤ   3 小时前
vite学习教程06、vite.config.js配置
前端·vite配置·端口设置·本地开发
长路 ㅤ   3 小时前
vue-live2d看板娘集成方案设计使用教程
前端·javascript·vue.js·live2d
Fan_web3 小时前
jQuery——事件委托
开发语言·前端·javascript·css·jquery
安冬的码畜日常3 小时前
【CSS in Depth 2 精译_044】第七章 响应式设计概述
前端·css·css3·html5·响应式设计·响应式
福大大架构师每日一题4 小时前
22.1 k8s不同role级别的服务发现
容器·kubernetes·服务发现
莹雨潇潇4 小时前
Docker 快速入门(Ubuntu版)
java·前端·docker·容器