WEB前端有必要学会docker吗?0基础-45分钟带你学会(包含视频笔记案例源代码)

news2024/11/22 9:07:01

文章目录

      • 一、为什么要使用docker
      • 二、Windows10/11系统安装Docker Desktop
      • 三、如何判断电脑已经安装好docker
      • 四、docker前端应用实战:将vue项目打包为docker镜像运行
        • 1、将vue的项目进行构建,输出dist
        • 2、准备镜像内容
        • 3、制作镜像
        • 4、启动镜像
      • 五、如何发布镜像到 docker Hub中,以便分享给其他人下载和运行
        • 1、发布到docker Hub库中
        • 2、发布后,其他人如何下载和运行呢?
      • 六、前端有必要学会docker吗

一、为什么要使用docker

docker提供了沙箱环境,能够隔绝物理环境,相当于是之前的虚拟机。而且docker内置了很多镜像可供使用。

Docker容器技术以及docker-compose容器编排技术能最大限度的保证您的项目在开发环境和生产环境上的一致表现。

要想在window系统或mac os中使用docker,需要先安装桌面版,其实相当于是在电脑安装了一个Linux内核+docker环境。

docker 需要Linux内核

二、Windows10/11系统安装Docker Desktop

Windows10(无论专业版还是家庭版)都能方便安装Docker Desktop

  • 在Docker官网下载最新的Docker Desktop安装,下载地址:https://www.docker.com/

    下载安装包大约有585M,目前最新版是4.15.0安装时,默认C盘,大约3分钟,安装完毕:

docker 桌面版安装

  • Docker Desktop启动的时候,有可能弹框提示"WSL2 installations is incomplete",这是您的系统中没有安装WSL2内核的原因,打开https://aka.ms/wsl2kernel,在打开的页面中有一个Linux内核更新包"链接,点击下载,安装。

  • WSL2 Linux内核更新包安装后,重启Docker Desktop即可正常使用。您可在cmd或者PowerShell命令行中使用docker或者docker-compose等相关命令了。

PS: 如果您在安装WSL2的过程中遇到了问题,可能是您的系统版本较低等原因,您可按照https://aka.ms/wsl2kernel 页面的相关提示更新系统。该Docker Desktop的安装方法基于Windows10WSL2如果您的系统没有或者不能安装WSL2,可能不能使用该方法安装Docker Desktop

对于win11 家庭版,需要在win10的基础上多一个前置步骤,才能安装成功:

  1. win11 中打开启用或关闭window功能,看选项中是否有hyper-v
    hyper-v

  2. 如果没有,则需要运行一个BAT脚本,以便激活该功能,将以下代码保存为bat文件,然后使用管理员方式运行。经过大约5分钟,自动重启电脑即可:

    pushd "%~dp0"
    dir /b %SystemRoot%\servicing\Packages\*Hyper-V*.mum >hv.txt
    for /f %%i in ('findstr /i . hv.txt 2^>nul') do dism /online /norestart /add-package:"%SystemRoot%\servicing\Packages\%%i"
    del hv.txt
    Dism /online /enable-feature /featurename:Microsoft-Hyper-V -All /LimitAccess /ALL
    pause
    

三、如何判断电脑已经安装好docker

CMD输入 docker,如果有反应表示安装成功

如何判断电脑已经安装好docker

四、docker前端应用实战:将vue项目打包为docker镜像运行

使用docker可以方便将其他人的项目直接运行,而不需要配置。

比如我这里已经有一个vue项目,接下来实操打包为镜像在本地运行或部署到docker镜像,只需要4步即可完成!

1、将vue的项目进行构建,输出dist

这个步骤就相当于是将vue的项目 npm run build 打包到服务器是一样的。

2、准备镜像内容

dist目录之上新建一个Dockerfile文件,该文件没有后缀,文件名即为此。然后输入如下内容:

FROM nginx:latest
LABEL Author imqdcn
COPY dist /usr/share/nginx/html

第一行:设置基础镜像,基础镜像使用nginx

第二行:作者信息

第三行:将dist文件夹下面的内容拷贝到/usr/share/nginx/html目录下面(nginx的默认项目路径),也就是我们Vue项目打包之后我们正常使用nginx是拷贝过去的文件夹。

dist源代码目录

3、制作镜像

docker build -t 镜像名字 .
# 比如:
docker build -t vue3project .

注意:后面的.不能省略,镜像创建成功之后使用docker images即可看到自己创建的镜像。

整个制作过程大概为1-5分钟。

制作镜像

4、启动镜像

docker run -d --name 镜像名字 -p 8888:80 vue3project

启动命令说明:

-d:容器在后台启动

—name : 镜像名称

-p 8888:80 :将nginx容器的80端口映射到主机的8888端口,我们访问时直接访问主机ip+映射到主机的端口,这里是8888,如果有路径,后面还要带上路径。 比如这里表示访问路径为:localhost:8888

vue3project: 我们刚刚创建的自己的镜像的名称,在创建时就要规划好名字

注意:

你制作完镜像后,就可以在自己的docker desktop看到镜像,并且在那里直接配置访问端口和将镜像放置在容器中运行。

在桌面版看到制作好的镜像

容器:

docker 容器

至此,你就相当于是将本地的vue的项目打包为一个docker镜像,并且可以在本地运行查看了,就像你部署到了一台虚拟服务器中!

imqdcn的docker演示项目

五、如何发布镜像到 docker Hub中,以便分享给其他人下载和运行

1、发布到docker Hub库中

发布指令,其实很简单,直接在命令行输入如下命令即可:

docker push imqdcn/xxx:latest
# docker push 注册用户名/镜像名:tag名

意味着,你需要先注册和登录docker-desktop

登录

然后通过命令行,运行docer login 登录,看是否命令行也已经登录成功:

命令行登录

如果你的镜像名字在最开始时没起好名或与其他人发布的镜像名有冲突,可以通过如下方式改名:

docker tag xxx imqdcn/xxx

# 表示将xxx改名为 imqdcn/xxx,你也可以改为任意你喜欢的名字,比如imqdcn/vue3project

至于tag名,则可以通过docker images看到:

docker-tags

改名后:

改名后的tags

以上都完成,就可以使用 第一条发布指令进行发布了。

docker-push发布

你可以在docker-desktop通过搜索该镜像名字找到镜像地址,或打开https://hub.docker.com/查找你发布的镜像:
搜索发布的镜像

2、发布后,其他人如何下载和运行呢?

镜像作者发给你hub镜像地址后,上面有拉取指令:

可以在命令行中先通过执行 docker pull下载到本地:

docker pull imqdcn/xxx
# 如果后面没有写tagname,则使用默认的tagName:latest

运行以上指令,即可在docker desktop看到该镜像,并可运行该镜像。

六、前端有必要学会docker吗

目前大部分公司都会将项目通过docker的方式部署到测试、预演、生产环境中。

虽然这些工作基本上都是由后端开发、测试工程师或运维工程师来完成,并不需要前端参与。俗话说技多不压身,从目前趋势来看,docker学起来简单,用起来也不复杂,仅从个人技术提升和兴趣爱好方面也是有必要学会的。

笔记源码下载:imqd.cn/why-web-developer-should-study-docker.html

如果你对web前端开发、面试感兴趣的话可以加V:imqdcnn。群里有各种学习资源发放,免费答疑,更有行业深潜多年的技术牛人分析讲解。

祝你能成为一名优秀的WEB前端开发工程师!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/170095.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【Leetcode】面试题 01.02. 判定是否互为字符重排、面试题 01.04. 回文排列

作者:一个喜欢猫咪的的程序员 专栏:《Leetcode》 喜欢的话:世间因为少年的挺身而出,而更加瑰丽。 ——《人民日报》 目录 面试题 01.02. 判定是否互为字符重排 面试题 01.04. 回文排列 面试题 …

水果店做微信活动推荐_分享水果店微信小程序制作步骤

试试做个小程序拯救你的店!让你做出有效果的活动,每笔钱都花在刀刃上!编辑第一,提升水果销量,降低损耗用水果店小程序做拼团、砍价、秒杀活动,并讲原本卖不完的水果,做成果盘吸引客人注册会员。…

点成分享|关于Grant水浴的一些FAQ

1、关于稳定性和均匀性 1)稳定性,是水浴中任何一点在达到恒温时不同时间下的温度规律性波动程度的描述,是通过浴槽中心点测定的,并表示为测量值的正负一半。系同点不同时的温度特性描述。 例如:SAP恒温水浴设定温度为…

unreal engine建模模式建模研究

Create PolyExt 挤出(需要闭合) image.pngPathExt 具有宽度挤出 (无需闭合) 如下图绘制一个形状后按鼠标左键确定绘制完成再移动鼠标控制厚度按鼠标左键确定后端后再移动鼠标确定高度 image.pngimage.pngPathRev Draw and revolve polypaths to create new objects 画和旋转pol…

企业级监控项目Skywalking详细介绍,来看看呀

一. Skywalking概述一个优秀的项目,除了具有高拓展的架构、高性能的方案、高质量的代码之外,还应该在上线后具备多角度的监控功能。现在企业中的监控服务也有很多,Skywalking除了提供多维度、多粒度的监控之外,也提供了良好的图形…

Kotlin 元编程之 KSP 全面突破

什么是元编程 没想到吧,这世上除了元宇宙,还有元编程,如果没有接触过,可能会有点懵,不过没关系,简单的说就是用代码来生成代码。实现元编程的传统常见手段主要是使用 APT注解处理器 JavaPoet 组合拳&…

JAVA基础知识巩固训练

目录 1. 案例一:逢 7 跳过 2. 案例二:数组元素求和 3. 案例三:判断两个数组是否相同⭐ 4. 案例四:查找元素在数组中的索引 5. 案例五:数组元素反转 6. 案例六:评委打分 7. 案例七:随机产…

后端人眼中的Vue(五)

七、Vue生命周期 ​ Vue的生命周期指的是Vue实例在页面中创建到销毁整个过程。Vue提供了在各个生命周期的钩子,钩子也叫Vue生命周期函数。这些生命周期函数是伴随着Vue实例创建、销毁的过程中自动触发的(不需要人为手动触发)。Vue实例生命周期…

产业互联网:补齐互联网的「短板」,重启互联网的「进化」

尽管在互联网时代出现了诸多的乱象,但是,我们依然无法否认互联网时代给人们的生产和生活带来的影响和改变。即使如此,我们依然无法否认互联网本身其实是存在着诸多的问题和弊病的,这些问题和弊病所导致的一个最为直接的结果&#…

【opencv】二维面找角点/关键点 实现

every blog every motto: You can do more than you think. 0. 前言 二维面找角点/关键点 实现 1. 正文 1.1 前提 1.1.1 显示函数 def show(arr):plt.imshow(arr)plt.show()def cvshow(arr):cv2.namedWindow(a, 0)cv2.imshow(a, arr)cv2.waitKey(0)cv2.destroyAllWindows…

通关算法题之 ⌈链表⌋

链表 删除元素 203. 移除链表元素 给你一个链表的头节点 head 和一个整数 val ,请你删除链表中所有满足 Node.val val 的节点,并返回 新的头节点 。 示例: 输入:head [1,2,6,3,4,5,6], val 6 输出:[1,2,3,4,5]c…

2022 IoTDB Summit:宝武智维徐少锋《Apache IoTDB 在宝武装备远程智能运维平台中的使用案例》...

12 月 3 日、4日,2022 Apache IoTDB 物联网生态大会在线上圆满落幕。大会上发布 Apache IoTDB 的分布式 1.0 版本,并分享 Apache IoTDB 实现的数据管理技术与物联网场景实践案例,深入探讨了 Apache IoTDB 与物联网企业如何共建活跃生态&#…

01【Vector CP】- 详解PN局部网络管理

Partial Networking概述 Partial Networking适用的ECU类型: 总线上依然有通信ECU关闭通信堆栈ECU要求降低功耗 Note:Partial Networking功能及其所有子功能是可选的,必须进行配置。为了控制此类ECU的关断和唤醒,CAN NM提供了一种额外的算法: NM PDU 消息中的用户数据部分…

java命名规范

Java总体命名规范1、项目名全部小写2、包名全部小写3、类名首字母大写,其余组成词首字母依次大写,驼峰命名4、变量名,方法名首字母小写,如果名称由多个单词组成,除首字母外的每个单词的首字母都要大写,保证…

企业数字化转型的关键一步,建立数据意识

数字化给社会带来的巨大的科技革命和产业革命,让数字经济成为新的高速增长的国民经济支柱,让数据变为第五大生产要素,发挥巨大价值,成为企业重要资产。不仅如此,在数字化的影响下,数字化转型成为了个人、机…

ue4.27空项目打包不卡ue5.1空项目打包运行卡的要命研究测试

知乎上有人提问 lumen是如何做到不卡顿的,我却不以为然,我的显卡虽然算不上好显卡,但是也不至于独立显卡一个空项目都玩不起吧,打个cf,玩腾讯模拟器和平精英吃鸡肯定还是会很流畅的. 一个空项目都卡,怎么能说是我电脑配置问题呢??? 再来看提示 image.pngimage.png反射设置的…

2023 过春年,烟花依然了无缘;这能难倒程序猿?一键三连过大年!

效果图镇楼 序 不知道是在什么时候,济南就开始都在传:“今年不再限制放烟花啦!”。一些集市上也开始有了售卖烟花的摊子 大家都很兴奋,很多小伙伴开始购买烟花。特别是今年特别火的 “加特林 😱” 但是大家兴奋劲还没…

<C++>红黑树

文章目录1. 红黑树的概念2. 红黑树的性质3. 红黑树节点定义4. 红黑树的插入操作5. 红黑树的验证6. 红黑树与AVL树的比较7. 红黑树模拟实现STL中的map与set1. 红黑树的概念 红黑树,是一种二叉搜索树,但在每个结点上增加一个存储位表示结点的颜色&#xf…

小程序管理还能这样做,让小程序管理更高效

说起小程序,作为开发者或者企业用户不得不面临一个问题就是,需要小程序承载的业务越来越多的时候,小程序的数量也呈现增长,随之而来的就是小程序开发、维护等一系列管理中会出现的问题。 包括到小程序的代码包管理、小程序上下架…

Toolwtech Graphics3D.NET 2.0.x专业版Crack

您是否正在寻找一种易于使用、功能强大且 100% 托管的 .NET 组件来快速开发 3D 图形或 3D 数据可视化应用程序?请尝试 Graphics3D.NET。使用 Graphics3D.NET,您可以在几分钟内开发出专业的 3D 可视化应用程序。 Graphics3D.NET 特点: * 100% …