docker 部署前后端分离项目(mysql + springBoot + redis)

之前也有学过一点docker方面的知识,这次迁移服务器刚好想着把docker用起来,用的腾讯云服务器,简单的列一下步骤和踩过的坑。

首先是安装docker,网上命令很多,这里不细说。

我们需要4个容器,分别是后端应用程序包(**.jar),nginx容器(存放前端静态资源,和nginx拦截跨域请求),mysql容器,redis容器。

1. 安装mysql

docker pull mysql:5.7  // 拉取镜像

docker run -p 3306:3306 --name mysql -v $PWD/conf:/etc/mysql/conf.d -v $PWD/logs:/logs -v $PWD/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=root -d mysql:5.7  // 使用镜像创建容器

docker exec -it mysql  /bin/bash   // 进入mysql容器

mysql  -u root -p root  登入mysql数据库  进去后可进行数据库的初始化工作

2. 安装redis

docker pull redis   // 拉取镜像

docker run -p 6379:6379 --name redis -d  redis  // 创建并启动redis

3.安装nginx

docker pull nginx   // 拉取镜像

先将前端项目的代码移动到/home/dist/目录下

docker run -d --name nginx -p 8081:80 -v /home/dist:/usr/share/nginx/html nginx   将主机的8081端口访问映射到虚拟机的80端口,并进行文件挂载

// 进入nginx容器 修改nginx.conf文件 笔者路径下为/etc/nginx/conf.d/  在里面增加如下内容

对请求路径包含v1的RestApi统一由nginx进行转发

4.安装后端应用程序

   与前个容器的制作方式不同,这个需要自己制作对应的镜像,方式通过Dockerfile文件进行建立

首先将Dockerfile 与 whu-car.jar 放在同一路径下,

Dockerfile里面内容如下:

docker build -t whu-car  .   // 制作一个名为whu-car的镜像,不要忘了后面的小数点

制作好镜像后,后面就是启动容器了,这一步很关键,因为这个容器需要依赖mysql和redis这两个容器。(踩过的坑就不列举了,如使用 --link mysql:mysql redis:redis等) 正确命令如下

docker run -d --name=car --net=host -p 8080:8080  whu-car

注意这里一定要使用host的网络连接方式,否则项目会连不上mysql报错。

关于这里为什么要使用这种连接,有兴趣的小伙伴可以参考这两篇文章

https://www.cnblogs.com/gispathfinder/p/5871043.html

https://www.oschina.net/question/1395553_174779

以上就是在服务器上用docker部署项目的一些步骤,如果说的不对,希望大家批评指教~。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值