Centos7-8下docker部署Springboot+vue前后端分离项目含nginx配置说明

Centos7-8下docker部署Springboot+vue前后端分离项目含nginx配置说明

  • docker部署说明
    • 安装docker
    • docker中安装nginx
    • 将nginx的配置文件目录挂载到本地
    • 部署前端项目
    • 部署后端项目
    • 后记

docker部署说明

初次接触docker部署前后端项目,各种踩坑。经过查询大量资料及部署的方式。终于总结出一套适合自己的部署方式。项目后端采用镜像的方式启动,前端则和nginx一起部署。

安装docker

首先我们需要在服务器安装docker::

  1. 使用官方安装脚本自动安装 :
    curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun

  2. 也可以使用国内 daocloud 一键安装命令安装:
    curl -sSL https://get.daocloud.io/docker | sh

  3. Docker基础命令:
    启动docker

    sudo service docker start
    

    停止docker

    sudo service docker stop
    

    重启docker

    sudo service docker restart
    

    查看docker启动的服务

    docker ps
    

在这里插入图片描述

docker中安装nginx

docker安装成功后,就可以部署项目了。我们先在docker中拉取nginx的镜像。

查看可用版本

docker search nginx

取最新版的 Nginx 镜像

docker pull nginx:latest

查看本地镜像

docker images

Centos7-8下docker部署Springboot+vue前后端分离项目含nginx配置说明_第1张图片

运行容器

docker run --name nginx-test -p 8080:80 -d nginx
参数说明:
–name nginx-test:容器名称。
-p 8080:80: 端口进行映射,将本地 8080 端口映射到容器内部的 80 端口。
-d nginx: 设置容器在在后台一直运行。

安装完成

打开浏览器输入ip+端口:
出现以下页面说明安装成功

Centos7-8下docker部署Springboot+vue前后端分离项目含nginx配置说明_第2张图片

将nginx的配置文件目录挂载到本地

创建挂载目录

文件可根据实际情况选择合适的目录创建
文件结构建议相同,后续启动命令有相关操作

Centos7-8下docker部署Springboot+vue前后端分离项目含nginx配置说明_第3张图片
进入容器

docker exec -it cd11b894a672 /bin/bash
cd11b894a672 是nginx的镜像id
可以通过命令:docker ps 查看

在这里插入图片描述
退出容器

找到我们nginx的目录结构后,就可以退出容器
执行 exit

复制镜像文件

docker cp -a cd11b894a672:/etc/nginx/conf.d/ /home/docker/nginx/conf.d
docker cp -a cd11b894a672:/etc/nginx/nginx.conf

nginx.conf的文件内容

user  nginx;
worker_processes  1;
 
error_log  /var/log/nginx/error.log warn;
pid        /var/run/nginx.pid;
 
 
events {
    worker_connections  1024;
}
 
 
http {
    include       /etc/nginx/mime.types;
    default_type  application/octet-stream;
 
    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for"';
 
    access_log  /var/log/nginx/access.log  main;
 
    sendfile        on;
    #tcp_nopush     on;
 
    keepalive_timeout  65;
 
    #gzip  on;
 
    include /etc/nginx/conf.d/*.conf;
}

default.conf的文件内容

server {
    listen       80;
    server_name  localhost;
  
    #charset koi8-r;
    #access_log  /var/log/nginx/log/host.access.log  main;
  
    location / {  
        root   /usr/share/nginx/html;
        index  index.html index.htm;
        #autoindex  on;
        #try_files $uri /index/index/page.html;
        #try_files $uri /index/map/page.html;
    }  
  
    #error_page  404              /404.html;
  
    # redirect server error pages to the static page /50x.html
    #  
    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
        root   /usr/share/nginx/html;
    }
  
    # proxy the PHP scripts to Apache listening on 127.0.0.1:80
    #  
    #location ~ \.php$ {
    #    proxy_pass   http://127.0.0.1;
    #}  
  
    # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000  
    #  
    #location ~ \.php$ {  
    #    root           html;  
    #    fastcgi_pass   127.0.0.1:9000;  
    #    fastcgi_index  index.php;  
    #    fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;  
    #    include        fastcgi_params;  
    #}  
  
    # deny access to .htaccess files, if Apache's document root  
    # concurs with nginx's one  
    #  
    #location ~ /\.ht {  
    #    deny  all;  
    #}  
}

部署前端项目

将打包的前端项目复制到目录下

Centos7-8下docker部署Springboot+vue前后端分离项目含nginx配置说明_第4张图片

前端打包的项目是dist文件。只需要将dist内的文件复制出来即可

关闭之前启动的nginx

docker stop cd11b894a672
docker rm cd11b894a672

重新启动nginx

docker run --name nginx -p 8080:80 -v /home/docker/nginx/html:/usr/share/nginx/html -v /home/docker/nginx/conf/nginx.conf:/etc/nginx/nginx.conf  -v /home/docker/nginx/logs:/var/log/nginx -v /home/docker/nginx/conf.d:/etc/nginx/conf.d -d nginx:latest

打开浏览器访问

如果弹出我们自己打包的前端项目首页。说明部署成功了。

部署后端项目

服务器创建Dockerfile文件

FROM java:8
VOLUME /tmp
ADD inspection.jar app.jar
# 设置时区
RUN ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
RUN echo 'Asia/Shanghai' >/etc/timezone
# 暴露17080端口
EXPOSE 17080
ENTRYPOINT [ "java", "-Djava.security.egd=file:/dev/./urandom", "-jar", "/app.jar" ]

后端打包jar放在同级目录

Centos7-8下docker部署Springboot+vue前后端分离项目含nginx配置说明_第5张图片

打包镜像

docker build -t inspection:show .

查看镜像

docker images

启动镜像

docker run -p 17080:17080 -d -t inspection:show

后记

其他的想要通过镜像的方式一样可以,如redis、mysql。
如果有初学者有疑问的可以留言。一起进步

你可能感兴趣的:(java,Oracle,java,https)