位置: IT常识 - 正文

前端Docker部署方案(docker部署webdav)

编辑:rootadmin
前端Docker部署方案 一、Docker容器和镜像概念

推荐整理分享前端Docker部署方案(docker部署webdav),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:docker是前端还是后端,docker前台运行,dockerfile 前端,docker搭建前端开发环境,docker部署前后端,docker搭建前端开发环境,docker搭建前端开发环境,docker部署前端项目,内容如对您有帮助,希望把文章链接给更多的朋友!

首先明确镜像和容器的概念。我们可以用 docker 构建一个镜像,这个镜像可以导入导出,用于传输,重复利用。然后如果把他 run 起来,则称为一个容器。容器是运行时,会包括运行时上下文;镜像是静态的,不包括运行上下文。 Docker容器: 容器 = 镜像 + 可读层。 详细的介绍,请参考:Docker容器与镜像

二、Docker的常用操作命令

镜像操作: 容器操作: 更多命令请参考:Docker Docs

三、实际使用1>Docker的基本操作// 制作前端容器// Dockerfile 指定 Dockerfile 的名称,也可以是别的名称// image-name 指定镜像名,image-tag 指定镜像 tag// . 表示上下文为当前目录为上下文制作容器docker build -f <Dockerfile> -t <image-name>:<image-tag> .// 查看镜像// docker images 会输出所有存在的镜像docker images// run前端容器// -d 表示以后台模式运行// --name 指定容器的名称,停止或查看日志时可用的 alias// --restart always 表示,只要是容器挂了,或者 docker.io 重启了,容器就会自动 run// -p 8000:80 表示端口映射,8000访问主机端口,80表示容器内部端口 // 此时访问本机的 8000端口即可访问容器内80端口web应用提供的界面。// 也可以不使用 -p 命令,改为使用 --network host,表示直接使用宿主机网络docker run -d --name <frontend> --restart always -p 8000:80 <image-name>:<image-tag>// 查看所有容器// -a 表示停止的容器也展示,如果不加 -a 则只会显示正在运行的容器docker ps -a// stop前端容器docker stop frontend// restart前端容器// 当 nginx 的配置文件被修改时,需要 restart 容器使其生效// 原理相当于 docker exec -it frontend; nginx -s reloaddocker restart frontend// 以交互方式进入容器// --it 表示交互式// 进入文件后可查看容器内部文件情况docker exec -it frontend bash// 拷贝容器内部文件// 表示把当前目录的 default.conf 拷贝到容器内部的 /etc/nginx/conf.d/default.conf 路径,相当于用当前目录的文件替换掉容器内部的文件// 也可以反过来写// docker cp frontend:/etc/nginx/conf.d/default.conf default.conf// 表示把容器内部 /ect/nginx/conf.d/default.conf 文件拷贝到当前路径 default.conf,相当于用容器内部文件替换当前目录的文件docker cp default.conf frontend:/etc/nginx/conf.d/default.conf2> DockerFile文件

要制作一个镜像,首先要有一个 Dockerfile,才能执行 build 操作。

以 nginx 为基础镜像构建的例子// 以 nginx:1.19.3 作为基础镜像构建镜像FROM nginx:1.19.3// 拷贝 npm run build 之后的产物文件到对应的 nginx 目录COPY dist/ /usr/share/nginx/html// 拷贝配置文件到对应的 nginx 目录COPY ./nginx/dev/default.conf /etc/nginx/conf.d/default.conf// 拷贝配置文件COPY ./nginx/dev/nginx.conf /etc/nginx/nginx.conf// 指定暴露容器端口 80EXPOSE 803> 制作镜像// 准备文件// 打包好的dist文件,dockerfile,nginx配置文件// 镜像制作docker build -f <Dockerfile> -t <project-name>:<project-versions> . //示例:// 苹果 M1 芯片需要指定 platform 参数:docker build --platform linux/amd64 -f Dockerfile-private -t fe-image-yh-local:v3.2.001.20220602 .// x86 机器不用:docker build -f Dockerfile-private -t fe-image-yh-local:v3.2.001.20220602 .// 查看镜像是否创建成功docker images4> 运行容器// 为了防止线上项目挂了 建议加上 --restart alwaysdocker run -d --name < project name> -p 8000:80 <image-name>:<image-tag>docker ps -a// 启动容器docker start <docker id>四、真实项目使用

需求: 在新的服务器上构建新镜像(前端) 新的服务器: 192.168.5.23 账号admin/密码123456

1. 解决方案A

1)先登录192.168.5.25 服务器: ssh @root 192.168.5.25, 输入密码,进入服务器 2、本地机器项目打包:

sh build_report.sh // 报告特殊处理下,一般的项目不需要这个步骤npm run build:dev // 项目打包,根据自己项目打包的命令来

3、 搭配使用了FileZilla软件,下载地址:FileZilla客户端 FZ软件:打包生成的dist文件拖进去,和dockerFile文件。 放在指定路径下,我放在了桌面上。

前端Docker部署方案(docker部署webdav)

FileZilla软件页面:

4、进行打包: 终端,cd到/root/桌面/firmware-xxx 路径下,进行构造镜像和保存操作

// 构建镜像 docker build -t <镜像名> . docker build -t fe-frontend-ys:v2.7.0.20230228.arm . // 保存 docker save -o <打包名><镜像名>docker save -o fe-frontend-ys-v2.7.0.20230228.arm.tar fe-frontend-ys:v2.7.0.20230228.arm

5、部署代码:

docker load -i fe-frontend-ys-v2.7.0.20230228.arm.tardocker run -d --network host --restart always --name fe-frontend-ys-v2.7.0.20230228.arm fe-frontend-ys:v2.7.0.20230228.arm2. 解决方案B

直接将整个项目代码拖到服务器上; 1、打开FZ软件,把整个项目拖进去(删除node-modules), 拖进去后,终端cd到路径:/root/桌面/firmware-xxx, 进行npm i 安装node-modules

2、打包

sh build_report.sh // 报告特殊处理下,一般的项目不需要这个步骤npm run build:dev // 项目打包,根据自己项目打包的命令来// 构建镜像 docker build -t <镜像名> . docker build -t fe-frontend-ys:v2.7.0.20230228.arm .// 保存 docker save -o <打包名><镜像名>docker save -o fe-frontend-ys-v2.7.0.20230228.arm.tar fe-frontend-ys:v2.7.0.20230228.arm

3、 部署

// 运行容器// docker run -d --name <frontend> --restart always -p 8000:80 <image-name>:<image-tag>// run前端容器// -d 表示以后台模式运行// --name 指定容器的名称,停止或查看日志时可用的 alias// --restart always 表示,只要是容器挂了,或者 docker.io 重启了,容器就会自动 run// -p 8000:80 表示端口映射,8000访问主机端口,80表示容器内部端口 docker run -d --net=yishi0 --restart always --name fe-frontend-ys-v2.7.0.20230228.arm -p 8012:80 fe-frontend-ys:v2.7.0.20230228.arm

本文主要是偏应用,结合自己项目中真实使用情况,来加以说明; 仅供参考。

学习文章: Docker 命令行入门大全:这 18 条,你不得不知 Dcoker安装

Docker Docs使用 nginx

本文链接地址:https://www.jiuchutong.com/zhishi/295237.html 转载请保留说明!

上一篇:vue 项目中 向数组 添加元素 的方式(vue中数字运算)

下一篇:蓝色龙舌兰田,墨西哥哈利斯科州龙舌兰酒产区 (© Brian Overcast/Alamy)(蓝色龙舌兰花语)

  • 为什么苹果8p连接wifi成功后没有显示(为什么苹果8p连不上有线蓝牙耳机)

    为什么苹果8p连接wifi成功后没有显示(为什么苹果8p连不上有线蓝牙耳机)

  • excel电子表格能做什么(excel表格可以直接打印吗)

    excel电子表格能做什么(excel表格可以直接打印吗)

  • 快手隐私用户的作品会在热门看到吗(快手隐私用户的粉丝还能看到隐私用户的点赞吗)

    快手隐私用户的作品会在热门看到吗(快手隐私用户的粉丝还能看到隐私用户的点赞吗)

  • 西瓜视频支持投电视吗(西瓜视频支持投影吗)

    西瓜视频支持投电视吗(西瓜视频支持投影吗)

  • 腾讯课堂看回放可以补时间吗(腾讯课堂看回放老师知道吗)

    腾讯课堂看回放可以补时间吗(腾讯课堂看回放老师知道吗)

  • 智慧团建密码忘记而且找不到管理员怎么办(智慧团建密码忘了,但是又找不到管理员)

    智慧团建密码忘记而且找不到管理员怎么办(智慧团建密码忘了,但是又找不到管理员)

  • 苹果11跑分多少

    苹果11跑分多少

  • 苹果se2支持5g网吗(苹果se2支不支持5g)

    苹果se2支持5g网吗(苹果se2支不支持5g)

  • 荣耀30s尺寸(下一页p20)

    荣耀30s尺寸(下一页p20)

  • tcl企鹅影院会员和腾讯视频会员一样吗(tcl企鹅影院会员客服电话)

    tcl企鹅影院会员和腾讯视频会员一样吗(tcl企鹅影院会员客服电话)

  • 怎样取消开发者模式(怎样取消开发者模式红米)

    怎样取消开发者模式(怎样取消开发者模式红米)

  • vivo安全认证怎么取消(vivo安全验证怎么取消)

    vivo安全认证怎么取消(vivo安全验证怎么取消)

  • 苹果11震动怎么调(苹果11震动怎么开)

    苹果11震动怎么调(苹果11震动怎么开)

  • 京东到家自取设置(京东到家app选择自提)

    京东到家自取设置(京东到家app选择自提)

  • 无需物流怎么修改(无需物流发货怎么办)

    无需物流怎么修改(无需物流发货怎么办)

  • 手机反向充电怎么开启(手机反向充电怎么办关不掉)

    手机反向充电怎么开启(手机反向充电怎么办关不掉)

  • 全民k歌怎么取消拉黑(全民k歌怎么取消vip连续包月)

    全民k歌怎么取消拉黑(全民k歌怎么取消vip连续包月)

  • i74790k配什么主板(i74790k搭配什么显卡)

    i74790k配什么主板(i74790k搭配什么显卡)

  • 苹果蓝牙耳机开机键在哪(苹果蓝牙耳机开机键在哪图解)

    苹果蓝牙耳机开机键在哪(苹果蓝牙耳机开机键在哪图解)

  • 微信里面怎么录音(微信里面怎么录制聊天记录)

    微信里面怎么录音(微信里面怎么录制聊天记录)

  • 账期保障15天怎么取消(账期保障15天什么意思)

    账期保障15天怎么取消(账期保障15天什么意思)

  • ppt能旋转视频吗

    ppt能旋转视频吗

  • windows7如何设置密码(windows7如何设置输入法)

    windows7如何设置密码(windows7如何设置输入法)

  • Vue项目中,el-image实现按钮触发大图预览模式(vue项目中的package.json是( )?)

    Vue项目中,el-image实现按钮触发大图预览模式(vue项目中的package.json是( )?)

  • vue开发页面自适应屏幕尺寸(vue 自适应网站ui框架)

    vue开发页面自适应屏幕尺寸(vue 自适应网站ui框架)

  • 开发票需要填银行吗
  • 无租房合同可以取住房公积金吗
  • 应付票据是资产吗
  • 小规模变更为一般纳税人流程
  • 银行结构性存款是理财吗
  • 小规模纳税人超过500万可以不转一般纳税人吗
  • 开具红字增值税专用发票的条件
  • 契税晚交有什么影响
  • 分配的股息 要交所得税吗
  • 溢价发行的债券,当债券临近到期日时,债券价格
  • 工程预付款有发票怎么做凭证
  • 收到保险公司返还的保险费
  • 写字楼出租流程
  • 非生产用设备及器具
  • 二手房房产税如何征收
  • 劳务费税率公式是什么
  • 深圳税种核定需要申报吗
  • 房地产预收房款怎么开票
  • 工程预算调整的主要内容
  • 增值税先征后退属于政府补助吗
  • 资产委托经营管理合同
  • 社保已申报但未缴费有什么影响
  • 苗木公司经营理念
  • 结转本期损益要过账吗
  • php中数组的常用函数及用法
  • php遍历显示多维数组
  • 建筑公司支付的预付款担保保函费怎么做账?
  • rundll32进程很多
  • linux怎么更改账户名
  • from origin ‘null‘ has been blocked by CORS policy: Cross origin requests are only supported for ...
  • 提前支付的费用记账
  • 石炭纪的树有多高
  • codelite怎么进行编译
  • 财务专用章是干啥的
  • phpstorm怎么用
  • 申请代开增值税专用发票有金额限制吗
  • 非居民纳税人可以做汇算清缴吗
  • thinkphp自定义标签
  • iis安装php环境
  • html中的标签有哪些
  • php操作mysql数据库
  • 营业执照上住所和经营场所
  • 损失函数是什么
  • js获取各种屏幕信息
  • python功能强大而深受欢迎的原因
  • js浅拷贝和深拷贝的方法
  • 车票抵扣增值税在哪里申报
  • thinkphp框架怎么用
  • 织梦怎么改文字
  • 核定征收企业注册
  • 资产总额是营业收入吗
  • MySQL进阶SELECT语法篇
  • SQL Server UPDATE语句的用法详解
  • 利息收入计入科目
  • 销售费用怎么用
  • 负债与所有者权益比率计算公式
  • 冲暂估费用
  • 工程施工人工费,材料费,机械费占多少比例
  • 财务费用中的汇兑损益和汇兑收益的区别
  • 外币财务报表的折算
  • 试运行收入冲减哪个项目
  • mysql5.0安装
  • mysql连接时间长怎么优化
  • windows优化软件
  • win7旗舰版系统重装
  • 怎么彻底关闭windows更新
  • win7系统关机没反应
  • win10键盘大小写不能切换了
  • windows图标变化
  • cocos2dx 2.2.2
  • shell脚本 -ne 0
  • android线程间通信的几种方法
  • jquery创建表格
  • winpe文件下载
  • 安卓应用 开发
  • 西安市交房要交多少钱
  • 山东省国税局领导分工
  • 火灾损失进项税额怎么处理
  • 税务局随机抽查事项清单
  • 北京税务局代个人开发票
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设