前后端分离整体项目docker部署

docker部署jar+vue+nginx

Posted by John Doe on 2020-07-25
Words 582 and Reading Time 2 Minutes
Viewed Times

背景介绍

前后端分离项目涉及vue、nginx与含dockerFile的jar包部署,使用docker一次性部署vue、nginx、jar、mysql。

操作流程

安装&启动docker

1
2
3
yum install docker

systemctl start docker

安装nginx

1
2
//查看镜像
docker images
1
2
#使用nginx镜像来创建nginx容器实例并运行
docker run --name nginx-test -p 80:80 -d nginx

run 创建容器实例

— name 容器命名

-v 映射目录

-d 设置容器后台运行

-p 本机端口映射 将容器的80端口映射到本机的80端口

将nginx关键目录映射到本机

在本机创建nginx的一些文件存储目录

1
mkdir -p /root/nginx/www /root/nginx/logs /root/nginx/conf

查看nginx-test容器id(containerId)
根据id将nginx-test容器配置文件copy到本地

1
2
3
docker ps -a

docker cp "containerId":/etc/nginx/nginx.conf /root/nginx/conf

创建新nginx容器nginx-web,并将www,logs,conf目录映射到本地

1
docker run -d -p 80:80 --name nginx-web -v /root/nginx/www:/usr/share/nginx/html -v /root/nginx/conf/nginx.conf:/etc/nginx/nginx.conf -v /root/nginx/logs:/var/log/nginx nginx

www: nginx存储网站网页的目录

logs: nginx日志目录

conf: nginx配置文件目录

启动nginx

1
docker start nginx-web

设置反向代理

进入到/root/conf/nginx.conf vim指令修改即可

1
2
3
4
5
6
7
8
9
10
server{
listen 80;
charset utf-8;
server_name ip地址(xxx.xxx.xxx.xxx);

location / {
proxy_pass http://ip地址:8080;
proxy_redirect default;
}
}

部署vue项目

cd vue项目 ls查看是否有dist与dockerfile 2个文件

dockerfile内容:
作用:指定镜像、将dist文件放到nginx的项目地址路径

1
2
3
FROM nginx:latest
MAINTAINER xx
COPY dist/ /usr/share/nginx/html/

dist文件生成:

1
npm run build

当前目录部署镜像

1
docker build -t vueproject .

部署mysql

1
2
3
4
5
6
7
8
9
10
11
# 下载镜像
docker pull mysql

# 查看镜像
docker images|grep mysql

# 启动容器镜像,建议在/usr/local/workspace/mysql 下执行以下docker run 命令
docker run -p 13306:3306 --name my-mysql -v $PWD/conf:/etc/mysql -v $PWD/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7.26
 
# 建议写死路径,-v挂载路径使即使容器停止运行数据依旧存在
docker run -p 13306:3306 --name my-mysql -v /usr/local/workspace/mysql/conf:/etc/mysql -v /usr/local/workspace/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=root -d mysql

部署java web项目

编写dockerfile文件

1
2
3
FROM openjdk:11-jre-alpine
ADD statistics_examine.jar app.jar
ENTRYPOINT ["java","-jar","app.jar"]

构建镜像&运行容器

1
2
3
docker build -t spring-hello .

docker run --name hello-backend -d -p 8000:8080 spring-hello


This is copyright.

...

...

00:00
00:00