docker+Nginx部署前端项目的详细过程记录

目录
  • 相关配置安装
  • 创建配置文件
  • 项目打包与部署
  • 一个相关报错:
  • 总结

相关配置安装

安装Docker

yum install docker

启动服务 start docker

systemctl start docker

Docker中拉取nginx镜像

docker pull nginx

创建配置文件

我们需要在根目录下创建Dockerfile文件和default.conf文件。

其中default.conf文件的名称是什么无所谓,只要在配置文件中注意使用相同名称即可。

Dokcerfile文件具体内容如下:

FROM nginx:latest

# 将项目根目录下dist文件夹下的所有文件复制到镜像中 /usr/share/nginx/html/ 目录下
COPY dist/ /usr/share/nginx/html/
COPY default.conf /etc/nginx/conf.d/default.conf
  • FROM nginx:latest: 命令的意思该镜像是基于 nginx:latest 镜像而构建的。
  • COPY dist/ /usr/share/nginx/html/ :命令的意思是将项目根目录下 dist 文件夹下的所有文件复制到镜像中 /usr/share/nginx/html/ 目录下。

这里镜像中的目录我们不要动,但需要保证我们项目的打包目录是dist/,或者自定义到你打包的目录下。

  • COPY default.conf /etc/nginx/conf.d/default.conf 命令的意思是将 Nginx 目录下的 default.conf 复制到 etc/nginx/conf.d/default.conf,用本地的 default.conf 配置来替换 Nginx 镜像里的默认配置。

这里镜像中的目录我们不要动,但需要保证我们编写的文件名也为default.conf,或者与你自己写的文件名对应

default.conf

下面的配置直接照抄就好,特别注意,监听的端口号并不需要动,这里的80端口指的是容器的端口,最后我们会将容器的端口映射到我们宿主服务器的端口,比如映射到8888端口。

8888:80

然后 注意修改为自己的服务器IP地址

完整配置:

upstream my_server{
  server 121.41.4.33:3000; # 后端server 地址
  keepalive 2000;
}

server {
    listen       80; #这里的端口号不要动,80端口指的是容器的端口,最后我们会将容器的端口映射到我们宿主服务器的端口,比如映射到8888端口
    server_name  111.20.xxx.xxx; # 修改为docker服务宿主机的ip/域名

    #charset koi8-r;
    access_log  /var/log/nginx/host.access.log  main;
    error_log  /var/log/nginx/error.log  error;

    location / {
        root   /usr/share/nginx/html;
        index  index.html index.htm;
        try_files $uri $uri/ /index.html =404;
    }
     #  这里就是和vue本地代理的意思一样,已api开头的路径都代理到本机的3000端口
    location /api/ {
        proxy_pass http://my_server/api;
        proxy_set_header Host $host:$server_port;
        rewrite ^/api/(.*) /$1 break;
    }

    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
        root   html;
    }
}

项目打包与部署

将打包项目,把dist文件夹和刚刚创建的Dockerfile,default.conf放到同一目录,并上传到服务器。

比如,我的代码存放位置是/home/test目录。

然后需要构建镜像

docker build -t test .

docker build -t我们并不需要动,

后面的test是我们构建的镜像的名称,.代表需要进行构建的代码的存放位置,这里是.是因为我当期所在目录就是/home/test,并且我的项目的三个文件就位于/home/test目录下。

如果我们此时位于其他目录,当前目录下没有要进行镜像打包的文件,那就需要更改路径。

比如:

dokcer build -t test /home/test

然后使用dokcer images可以查看我们已经存在的镜像

镜像构建好后,我们就可以拿这个镜像启动一个容器

docker run -d -p 8888:80 --name test-image test
  • -d 后台方式运行
  • -p 8888:80 端口映射,将宿主的8888端口映射到容器的80端口
  • –name 容器名 镜像名

然后我们可以使用docker ps查看当前正在运行的容器

并且使用IP地址和端口号访问当前的项目

注意

上面我们进行了端口映射,那就需要在服务器中开启要使用的端口,

我们可以在云服务器中的安全组进行设置。

或者使用命令设置

查看已开放端口命令:firewall-cmd --list-all

  • 查看防火墙状态:active (running) 即是开启状态

systemctl status firewalld

  • 查看已开发端口命令:firewall-cmd --list-all
  • 新增防火墙开放端口:

firewall-cmd --zone=public --add-port=3306/tcp --permanent

  • 开放端口后需要重新加载防火墙:

firewall-cmd --reload

一些相关指令

如果我们不再需要这个容器和镜像,

首先需要先停止这个容器,然后在移出容器和镜像。

首先拿docker ps找到指定容器的ID,

使用docker stop [ID] 停止容器

docker rm [ID] 移除容器

然后拿docker images查看已存在的镜像ID,

使用docker rmi [ID] 移除镜像

可能我们的docker没有设置开机启动:

systemctl start docker # 启动docker
systemctl status docker # 查看docker的运行状态

一个相关报错:

关于:Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?

关于今天使用Docker时报了以下错误:

[centos@localhost ~]$ docker ps
Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?

分析报错的原因:

报错的翻译:无法连接到 unix:///var/run/docker.sock 上的 Docker 守护程序。 docker 守护进程是否正在运行?

通过翻译完报错,可以看出报错的原因是因为docker的服务没启动

解决方法:

1、首先启动docker服务

[root@localhost /]# systemctl start docker 

2、查看docker服务当前状态

[root@localhost /]# systemctl status docker

就此,以上的报错就成功解决!

开机自启动Docker

为了避免以上的问题重复出现,可以设置docker开启自启动!

[root@localhost /]# systemctl enable docker

后续,我们将使用docker和github actions实现自动化部署。

总结

到此这篇关于docker+Nginx部署前端项目的文章就介绍到这了,更多相关docker+Nginx部署前端项目内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • docker安装nginx并部署前端项目的全过程

    目录 1.简介 2.操作 3. 总结 1.简介 本文主要介绍如何使用docker安装nginx,以及如何将前端打包好的vue项目部署到nginx上. 2.操作 (1)拉取nginx镜像: docker pull nginx (2)咱们先把docker镜像跑起来: docker run --name myNginx -p 80:80 -v /home/nginx/dist:/usr/share/nginx/html -d nginx ## --name:容器名字 ## -d: 要启动的镜像的名字

  • 基于Docker、Nginx和Jenkins实现前端自动化部署

    目录 前期准备 部署目标 Dcoker环境的搭建 连接云服务器 安装Docker环境 Docker安装Docker Compose Docker安装Nginx和Jenkins服务 安装Nginx和Jenkins Nginx和Jenkins目录编写 docker-compose.yml文件配置 nginx.conf文件配置 安装Jenkins插件 关联Jenkins和GitLab 生成密钥 新建项目 源码管理 构建触发器 结束语 前期准备 基于CentOS 7系统云服务器一台. 基于Vue-CLI

  • 一篇文章快速掌握Nginx部署前端项目(Nginx安装配置及部署都非常详细!)

    目录 前言: Nginx的三个作用: 负载均衡: 反向代理: 动静分离: Nginx的下载安装(Linux环境下) Nginx的使用 三.部署前端项目 总结 前言: 之前在Linux系统中部署了后端项目,今天继续来给大家分享如何部署前端项目. 涉及到了Nginx的简单介绍以及Nginx如何安装及配置并且能够部署前端项目 Nginx是一个轻量级的反向代理web服务器,在当今应用地非常广泛,特别是前后端分离的情况下. Nginx的三个作用: 负载均衡: 当我们的单个项目访问量达到了单个tomcat无

  • nginx部署多前端项目的几种方法

    个人总结了3种方法来实现在一台服务器上使用nginx部署多个前端项目的方法. 基于域名配置 基于端口配置 基于location配置 在正式开始之前,我们先来看一下nginx安装的默认配置文件: /etc/nginx/nginx.conf 文件 可以看到图中的:include /usr/nginx/modules/*.conf,这句话的作用就是可以在nginx启动加载所有 /usr/nginx/modules/ 目录下的 *.conf 文件. 所以,平时我们为了方便管理,可以在此目录下面定义自己的

  • docker+Nginx部署前端项目的详细过程记录

    目录 相关配置安装 创建配置文件 项目打包与部署 一个相关报错: 总结 相关配置安装 安装Docker yum install docker 启动服务 start docker systemctl start docker Docker中拉取nginx镜像 docker pull nginx 创建配置文件 我们需要在根目录下创建Dockerfile文件和default.conf文件. 其中default.conf文件的名称是什么无所谓,只要在配置文件中注意使用相同名称即可. Dokcerfile

  • 服务器使用Nginx部署Springboot项目的详细教程(jar包)

    1,将java项目打成jar包 这里我用到的是maven工具 这里有两个项目,打包完成后一个为demo.jar,另一个为jst.jar 2.准备工具 1.服务器 2.域名(注:经过备案) 3.Xshell用于连接服务器 4.WinScp(注:视图工具,用于传输jar) 3.将jar包传入服务器 直接拖动即可 3.使用Xshell运行jar包 注:(服务器的java环境以及maven环境,各位请自行配置,这里不做描述.) cd到jar包路径下执行:nohup java -jar demo.jar

  • nginx部署vue项目的详细图文教程

    首先需要在服务器里下载nginx, apt-get install nginx 检查nginx是否安装,输入如下命令后若出现版本号则安装成功 nginx -v 然后启动nginx server nginx restart 如果有如下报错,则按照它的提示下载相关插件 我这里下载了2次不同的插件.直到运行server nginx restart指令成功 此时打开浏览器,输入你的服务器ip,就可以看到nginx启动成功 之后进行Vue项目打包: 在你一般输入运行npm run dev的地方输入npm

  • idea整合docker快速部署springboot应用的详细过程

    目录 一.前言 二.环境及工具 三.安装docker以及配置远程连接 四.idea连接远程docker 一.前言 容器化一词相信大家已经不陌生了,听到它我们可能会想到docker.k8s.jenkins.rancher等等.那么今天我来说一下idea如何使用docker快速部署springboot应用. 二.环境及工具 windows10(开发) centos 7.6 (部署) idea docker xshell 三.安装docker以及配置远程连接 安装docker步骤网上有很多,在这里还是

  • docker 搭建部署 YAPI 框架的详细过程

    目录 Yapi介绍 优点: Yapi的几个功能 1.启动 MongoDB 2.获取 Yapi 镜像,版本信息可在 阿里云镜像仓库 查看 3.初始化 Yapi 数据库索引及管理员账号 4.启动 Yapi 服务 5.Yapi 部署成功 Yapi介绍 Yapi是一个高效.易用.功能强大的接口文档管理工具,旨在为开发.产品.测试人员提供更优雅的接口管理服务.可以帮助开发者轻松创建.发布.维护 API.Yapi旨在为开发.产品.测试人员提供更优雅的接口管理服务.可以帮助开发者轻松创建.发布.维护 API.

  • IDEA 2020.2 部署JSF项目的详细过程

    目录 1.下载glassfish 2.配置glassfish环境变量 3.修改jdk环境变量 4.测试glassfish是否可以正常启动 5.在IDEA中创建一个JSF项目 6.问题:部分标签元素无法显示 1.下载glassfish idea2021最新激活方法 去官网下载glassfish4.1.1(最后发现glassfish5也行) 官网地址:GlassFish https://javaee.github.io/glassfish/ 点击download 选择图中版本 下载完解压到自己指定的

  • 使用Vite从零搭建前端项目的详细过程

    目录 一.环境搭建 二.初始化项目 一.环境搭建 首先,请确保已经安装了代码编辑器和浏览器,如果没有安装推荐安装VSCode和Chrome浏览器. 其次是安装 Node.js,如果你的系统中还没有安装 Node.js ,可以进入 Nodejs 官网下载相应的安装包进行手动安装:如果已经安装了 Node.js,你可以使用这个命令检查一下 Node.js 版本. node -v 如果安装了多个版本的Node.js,推荐使用 nvm 工具切换 Node.js 版本.安装完 Nodejs 之后,包管理器

  • nginx安装以及配置的详细过程记录

    目录 1 nginx 介绍 1 什么是nginx 2 应用场景 2 nginx安装 1 下载 2 安装要求的环境 1.需要安装gcc环境 2.第三方的开发包 3 nginx安装过程 3 启动nginx 4 查看nginx是否启动 5 关闭nginx 6 重启nginx 7 刷新配置文件 8 关闭防火墙,开启远程访问 9 访问nginx 10 配置虚拟主机 11 通过端口区分不同的主机 12 多个域名区分虚拟主机 1 什么是域名 2 nginx配置 3 测试 13 正向代理 14 反向代理 15

随机推荐