位置: 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)(蓝色龙舌兰花语)

  • 设备租赁公司印花税怎么交
  • 土地增值税特点不包括
  • 小规模纳税人税费会计分录
  • 员工公交费补贴怎么入账
  • 小额转款
  • 个税申报信息怎么恢复
  • 红字发票申请表盖什么章
  • 银行的划分标准
  • 建筑业营改增的主要内容
  • 计提的工会经费怎么做账
  • 收到加工劳务发票怎么做
  • 进货有商业折扣商品怎么入库
  • 税前计提工资福利费用如何做会计核算?
  • 个人开劳务发票要同时交个税吗?
  • 国家税务总局13号文
  • 关于非上市公司的法律
  • 企业发放防暑降温物品依据
  • 新办企业注册资本和投资总额
  • 销售退回冲减主营业务收入吗
  • 房产代理公司收客户钱违法
  • 分期付款买车的人多吗
  • 消费税税目是否含税
  • 不同的折旧方法对经济评价有什么影响
  • 个人独资企业出资额是注册资本吗
  • 企业购买股票投资
  • 销售单怎么设置打几行
  • 企业计算缴纳的所得税费用
  • linuxnl
  • 个人股权转让要交增值税吗
  • 其他应付款科目核算的内容包括
  • 抵押质押的含义
  • BIOS里没有USB-HDD选项
  • PHP:xml_set_processing_instruction_handler()的用法_XML解析器函数
  • u盘怎么安装软件
  • wordpress 设置
  • 增加办税人员需要带什么材料
  • php读取opc
  • 会计分录的表现形式有
  • 固定资产汽车抵扣新政策
  • 股份支付的确认和计量原则
  • Java8 Stream流Collectors.toMap当key重复时报异常(IllegalStateException)
  • 合并资产负债表模板
  • 其他综合收益需要写二级科目吗
  • 共管账户和联名账户
  • vue-mapvgl
  • 不仅仅是喜欢原唱
  • javascript获取字符串长度
  • dns configuration
  • 用人单位招用失业人员补贴
  • 命令行 压缩
  • 职工福利费怎么处理
  • 增量留抵税额退还举例
  • RabbitMQ个人实践
  • 劳务费如何开票给客户
  • 未分配利润处理顺序
  • 非本公司员工的火车票可以报销么
  • 没报税可以先清卡吗
  • 综合所得的个人所得税有哪些筹划技巧
  • 营改增后建筑企业税负不降反增
  • 收到票据之后贴什么标签
  • 设备基础属于什么基础
  • mysql 压测
  • mysql 5.6.14 win32 解压缩版(免安装)安装配置教程
  • sqlserver数据库事物日志已满
  • xp系统必备软件
  • 安装完win8后没有无线网络
  • winxp打开任务管理器的快捷键
  • windows8怎么新建word文档
  • 如何删除双系统中的linux系统
  • jquery和原生js性能
  • jquery mobile app案例
  • android
  • windows设置开机启动软件
  • win10文件类型选项
  • python不能用
  • android listview数据动态加载
  • 河南洛阳医疗保险电话
  • 大管家多少集
  • 赞美税务局的话
  • 昆明国家高新技术产业开发区管理委员会官方门户网站
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设