springboot项目部署阿里云

本文介绍了如何将SpringBoot项目部署到阿里云服务器,包括更改数据库连接至服务器IP、创建MySQL容器、打包项目并生成镜像、创建blog容器、拉取并配置Nginx进行负载均衡,以及查看容器日志和解决时间同步问题。
摘要由CSDN通过智能技术生成

springboot项目部署阿里云

服务器数据库连接

本地springboot+JPA项目部署阿里云服务器之前,先把数据库连接方式改成连接服务器的ip地址:

spring:
  datasource:
    driver-class-name: com.mysql.jdbc.Driver
    url: jdbc:mysql://47.95.226.179:3306/blog?useUnicode=true&characterEncoding=utf-8&useOldAliasMetadataBehavior=true
    username: root
    password: root

拉取数据库镜像并创建mysql容器

docker run -di --name=mysql__container -p 33306:3306 -e MYSQL_ROOT_PASSWORD=123456 mysql

生成项目镜像

springboot项目打包成jar包,上传至阿里云root目录下,在mv到当前路径:/usr/local/myblog/dockerjdk11/

当前路径下 vi Dockerfile

# 因为jdk必须运行在操作系统之上
FROM centos:7

#指定镜像创建者信息
MAINTAINER zhangdonghui

# 创建一个新目录来存储jdk文件
RUN mkdir /usr/local/java

#将jdk压缩文件复制到镜像中,它将自动解压缩tar文件
ADD jdk-11.0.8_linux-x64_bin.tar.gz /usr/local/java/

# 创建软连接 ln -s 源文件 目标文件
RUN ln -s /usr/local/java/jdk-11.0.8 /usr/local/java/jdk

# 设置环境变量
ENV JAVA_HOME /usr/local/java/jdk-11.0.8
ENV PATH $JAVA_HOME/bin:$PATH

# VOLUME 指定了临时文件目录为/tmp
# 其效果是在主机 /var/lib/docker 目录下创建了一个临时文件,并链接到容器的/tmp
VOLUME /tmp 

# 将jar包添加到容器中并更名为app.jar
ADD blog.jar /app.jar

# 运行jar包
RUN bash -c 'touch /app.jar'
ENTRYPOINT ["java","-jar","/app.jar"]

然后执行镜像的命令 docker build -t myblog_image .

创建两个blog容器

日志目录挂载:docker run -di --name=myblog1_container -p 8081:8080 -v /usr/local/myblog/log:/log myblogdocker
日志目录挂载:docker run -di --name=myblog2_container -p 8082:8080 -v /usr/local/myblog/log:/log myblogdocker

-d 表示后台运行
-h 容器的主机名
-p port1:port2 port1服务器的端口 port2 容器内端口
-name 容器名称
最后一个参数为镜像名称
-v 宿主机目录:容器目录

拉取nginx镜像

docker pull nginx

创建nginx容器

docker run -id --name=mynginx_container -p 80:80 -v /usr/local/myblog/mynginx:/etc/nginx nginx -v /usr/local/myblog/mynginx/log:/var/log/nginx

配置nginx负载均衡

nginx的配置文件在容器的/etc/nginx/所以这里为了方便 先把配置文件拷贝出来

docker cp mynginx_container:/etc/nginx/nginx.conf nginx.conf
vi nginx.conf修改配置文件
    #gzip  on;
    upstream zhangdonghui {
    server 47.95.226.179:8081 weight=1;
    server 47.95.226.179:8082 weight=2;
	}

upstream zhangdonghui 下面配置的就是两个web应用所在的的ip地址以及端口号

注意下面的include /etc/nginx/conf.d/*.conf;

意思是导入的配置文件 在 /etc/nginx/conf.d/*.conf;下面

继续将 /etc/nginx/conf.d/*.conf;下面的配置文件拷贝出来修改

docker cp mynginx_container:/etc/nginx/conf.d/default.conf default.conf
    location / {
        proxy_pass http://zhangdonghui;//实现nginx代理,随机访问tomcat1和tomcat2
        proxy_redirect default;//设置默认的nginx代理,而不是访问下面的默认的nginx的index.html页面
        #root   /usr/share/nginx/html;
        #index  index.html index.htm;
    }

在location / {}里面添加proxy_pass http://zhangdonghui; 添加后wq保存
然后将两个配置文件拷贝回去

docker cp nginx.conf mynginx_container:/etc/nginx/nginx.conf
docker cp default.conf mynginx_container:/etc/nginx/conf.d/default.conf

重启nginx

docker restart mynginx_container

查看容器日志

Linux系统显示时间与日期的命令是date,直接输入date命令将会显示时间日期,也可以输入date +%H:%M只显示时间。
docker容器时间与宿主机时间不一致问题
容器内修改时区

docker exec -it <容器名> /bin/bash
ln -sf /usr/share/zoneinfo/Asia/Shanghai    /etc/localtime
docker restart <容器名>

tail 动态查看日志

tail -f filename     查看日志,动态监控日志,日志一有变化就打印出来 
tail -f filename |grep xxxx    动态监控日志信息,管道符后面的grep表示匹配xxxx的内容
tail -n 3 filename        打印出最后3条日志信息

ctrl+c 就可以退出查看日志模式

tomcat镜像拉取与容器创建

docker run -di --name=mytomcat -p 1314:8080 -v /usr/local/myblog/webapps:/usr/local/tomcat/webapps tomcat

扩展知识

ps -aux|grep nginx:查看某个进程是否存在。

kill pid:杀死已经启动的某个进程
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值