手把手教你用 Docker 部署 Vue3 项目

这篇具有很好参考价值的文章主要介绍了手把手教你用 Docker 部署 Vue3 项目。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

用 docker 可以帮我们快速部署前端项目,本文介绍了如何用 docker 快速部署 vue3 项目。请准备好一台云服务器并安装好 docker,然后开始阅读本教程。

1 项目打包

执行npm run build打包后项目目录中会多出一个 dist 文件夹

docker部署前端vue项目,docker,容器,运维

2 制作 docker 镜像

利用 docker 拉取 nginx 镜像

docker pull nginx

在服务器中创建工作目录,这里我放在 /home 目录下

docker部署前端vue项目,docker,容器,运维

工作目录中存放三个文件,分别是:

  1. 打包后的项目文件 dist
  2. nginx 的配置文件 default.conf,内容如下
server {
    listen       80;
    server_name  localhost; # 修改为docker服务宿主机的ip
 
    location / {
        root   /usr/share/nginx/html;
        index  index.html index.htm;
        try_files $uri $uri/ /index.html =404;
    }
 
    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
        root   html;
    }
}
  1. 用来构建 Docker 镜像的 Dockerfile 文件,内容如下
FROM nginx
 
MAINTAINER onesummer
 
RUN rm /etc/nginx/conf.d/default.conf
 
ADD default.conf /etc/nginx/conf.d/
 
COPY dist/ /usr/share/nginx/html/

Dockerfile 文件解释

FROM nginx:该镜像是基于nginx:latest镜像构建的
 
MAINTAINER onesummer:添加说明
 
RUN rm /etc/nginx/conf.d/default.conf:删除目录下的default.conf文件
 
ADD default.conf /etc/nginx/conf.d/:将default.conf复制到/etc/nginx/conf.d/下,用本地的default.conf配置来替换nginx镜像里的默认配置
 
COPY dist/ /usr/share/nginx/html/:将项目根目录下dist文件夹(构建之后才会生成)下的所有文件复制到镜像/usr/share/nginx/html/目录下

完成以上步骤之后,进入工作目录,通过 docker build 构建镜像

docker build -t [镜像名称] .

注意事项:-t 后输入给镜像取的名称,最后的点 (.) 不要忘记,代表给利用当前 dockerfile 构建镜像

3 启动 docker 容器

先查看我们构建的镜像 docker images

docker部署前端vue项目,docker,容器,运维

利用 docker run 命令启动 docker 容器

docker run -d -p 88:80 --name [容器名] [镜像名]

查看我们启动的容器 docker ps

docker部署前端vue项目,docker,容器,运维

关闭正在运行的容器

docker stop [容器名]

删除容器

docker rm [容器名]

删除所有已经停止的容器

docker container prune

4 关闭、开启服务器防火墙

浏览器访问之前,我们需要在防火墙中放行端口

  1. 云服务器的防火墙放行,详见你所用的服务器的文档
  2. Linux 系统防火墙端口放行,以 Ubuntu 20 为例
  • 查看放行端口状态
sudo ufw status

docker部署前端vue项目,docker,容器,运维

  • 端口放行
sudo ufw allow [端口号]

// 删除规则
sudo ufw delete allow [端口号]/tcp

完成之后,就可以在浏览器中查看啦!

  • 端口禁止/解除禁止
sudo ufw deny [端口号]

sudo ufw delete deny [端口号]

参考文献

https://blog.csdn.net/xiaolong124/article/details/123458100?ops_request_misc=&request_id=&biz_id=102&utm_term=docker部署vue的前端项目&utm_medium=distribute.pc_search_result.none-task-blog-2~all~sobaiduweb~default-7-123458100.nonecase&spm=1018.2226.3001.4187文章来源地址https://www.toymoban.com/news/detail-751927.html

到了这里,关于手把手教你用 Docker 部署 Vue3 项目的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 手把手教你用AirtestIDE无线连接手机

    一直以来,我们发现同学们都挺喜欢用无线的方式连接手机,正好安卓11出了个无线连接的新姿势,我们今天就一起来看看,如何用AirtestIDE无线连接你的Android设备~ 当 手机与电脑处在同一个wifi 下,即可尝试无线连接手机了,但是这种方式受限于网络连接的稳定性,可能会出

    2023年04月18日
    浏览(56)
  • 手把手教你用Python编写邮箱脚本引擎

    版权声明:原创不易,本文禁止抄袭、转载需附上链接,侵权必究! 邮箱是传输信息方式之一,个人,企业等都在使用,朋友之间发消息,注册/登录信息验证,订阅邮箱,企业招聘,向客户发送消息等都是邮箱的使用场景;邮箱有两个较重要的协议:SMTP和POP3,均位于OSI7层

    2024年02月06日
    浏览(59)
  • 手把手教你用jmeter做压力测试(详图)

    压力测试是每一个Web应用程序上线之前都需要做的一个测试,他可以帮助我们发现系统中的瓶颈问题,减少发布到生产环境后出问题的几率;预估系统的承载能力,使我们能根据其做出一些应对措施。所以压力测试是一个非常重要的步骤,下面我带大家来使用一款压力测试工

    2024年02月02日
    浏览(48)
  • 手把手教你用video实现视频播放功能

    哈喽。大家好啊 今天需要做一个视频播放列表,让我想到了video的属性 下面让我们先看看实现效果 这里是我的代码 width是当前播放页面的宽度 height是当前播放页面的高度 Controls属性用就是控制栏那些了 比如播放按钮 暂停按钮 autoplay是指的是自动播放 poster是指的是初始化进

    2024年02月12日
    浏览(54)
  • 手把手教你用Python实现2048小游戏

    感觉好久没有写小游戏玩了,今天恰巧有空.这次我来用Python做个2048小游戏吧.废话不多说,文中有非常详细的代码示例,需要的朋友可以参考下 目录 一、开发环境 二、环境搭建 三、原理介绍 四、效果图 Python版本:3.6.4 相关模块: pygame模块; 以及一些Python自带的模块。 安装

    2024年04月28日
    浏览(75)
  • 手把手教你用git上传项目到GitHub

    github的官方网址:https://github.com ,如果没有账号,赶紧注册一个。 点击Sign in进入登录界面,输入账号和密码登入github。 创建成功可以看到自己的仓库地址,如此,我的远程免费的仓库就创建了。它还介绍了github仓库的常用指令。这个指令需要在本地安装git客户端。 Git是目

    2024年01月18日
    浏览(52)
  • 手把手教你用UNet做医学图像分割系统

    兄弟们好呀,这里是肆十二,这转眼间寒假就要过完了,相信大家的毕设也要准备动手了吧,作为一名大作业区的UP主,也该蹭波热度了,之前关于图像分类和目标检测我们都出了相应的教程,所以这期内容我们搞波新的,我们用Unet来做医学图像分割。我们将会以皮肤病的数

    2024年02月03日
    浏览(77)
  • 手把手教你用MindSpore训练一个AI模型!

    首先我们要先了解深度学习的概念和AI计算框架的角色( https://zhuanlan.zhihu.com/p/463019160 ),本篇文章将演示怎么利用MindSpore来训练一个AI模型。和上一章的场景一致,我们要训练的模型是用来对手写数字图片进行分类的LeNet5模型 请参考( http://yann.lecun.com/exdb/lenet/ )。 图1 M

    2024年02月04日
    浏览(60)
  • 手把手教你用Git——详解git merge

    关于本教程的编写环境 本文基于 Windows10系统 , Mac 系统的小伙伴可以尝试 Homebrew 。由于本人手里并没有搭载 MacOS 的电脑,因此 Homebrew 相关的使用请自行尝试。 对于使用 Windows11系统 的小伙伴,本文的教程是通用的,不过一些细节可能略有不同,这点希望小伙伴们注意一下

    2024年02月05日
    浏览(51)
  • vue系列(三)——手把手教你搭建一个vue3管理后台基础模板

    目录 一、前言: 二、网站页面分析 三、开发步骤 (一)、安装element (二)、安装使用svg插件 (三)、编写主界面框架代码  (四)、编写菜单栏  (五)、新建页面及路由 (六)、定制页面标签栏 第一步: 第二步: (七)、修改封装菜单栏 (八)、添加面包屑 四、结

    2023年04月24日
    浏览(60)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包