有关docker部署项目的过程总结(Springboot/Vue/Mysql/Redis/Nginx)

2 篇文章 0 订阅
1 篇文章 0 订阅

1、安装docker

我的服务器是基于CenOS7.4版本,猿友们也可以搞个类似版本的虚拟机,docker的安装方式是采用yum 安装方式:

yum install docker

so easy! 然后就是把docker 启动起来了:

systemctl start docker

此时你执行一下 docker -v 就会显示:
在这里插入图片描述
执行一下 docker -help
这样就说明你的docker已经安装好并且启动了。

2、配置一下阿里镜像加速

有关阿里镜像加速配置,咋们首先得去找到自己的阿里镜像加速地址,每个淘宝账号都有一个自己独立的。下面教一教大家获取自己的阿里镜像加速地址:

  1. 进入阿里云官网,并且登录,点击控制台
    在这里插入图片描述
  2. 进入控制台后,点击左上角的产品与服务,再选择容器镜像服务
    在这里插入图片描述
  3. 进入容器镜像服务后,点击镜像加速器
    在这里插入图片描述

按照上面的说明步骤去做就可以了。

3、咋们就要通过docker 拉去我们需要的基础镜像了

比如拉取我们需要部署Springboot项目的 JDK1.8镜像:

docker pull openjdk:8u262-jdk

拉取我么需要部署静态资源的nginx 镜像:

docker pull nginx:stable-alpine

拉取mysql 镜像:

docker pull mysql:5.7

拉取reids镜像:

docker pull redis:latest

全部拉取完毕后,咋们执行一下docker image ls
在这里插入图片描述
我们看到,所有的基本镜像已经拉去下来了。

为了后期我们docker容器之间镜像通信,比如,部署Springboot的容器需要连接 部署mysql的容器和部署redis的容器,那么这些容器之间,必须能够通信,我们可以创建自定义网桥:
在这里插入图片描述

docker network create -d bridge laojbridge

创建后,查询创建的桥接信息 docker network ls
在这里插入图片描述
详细信息: docker network inspect fd8b1066cc13
在这里插入图片描述

4、基于基础镜像通过部署Springboot项目

创建 目录 mkdir -p /home/laoj/docker/teacher/
在此目录下 创建编写Dockerfile:

FROM openjdk:8u262-jdk
MAINTAINER pangfei<695149142@qq.com>
RUN mkdir -p /home/laoj/file
WORKDIR /home/laoj/teacher
VOLUME /home/laoj/teacher
VOLUME /home/laoj/file
EXPOSE 8081
USER root
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom" ,"-jar","laoj-teacher.jar"]

构建镜像:

docker build -t teacher:v1.0 --network laojbridge -f Dockerfile .

执行 docker image ls 后,可以看到新建的镜像
在这里插入图片描述

运行镜像 teacher:V1.0

docker run  -it -d  -p 8081:8081   -v /home/laoj/teacher:/home/laoj/teacher -v /home/laoj/file:/home/laoj/file --network laojbridge --network-alias teacher  --name teacher  --restart=always teacher:v1.0 

其中:

  • /home/laoj/teacher 是 本地jar包目录。
  • /home/laoj/file是Springboot项目上传文件存放地方,都挂载到了本地本地服务目录中。
  • –network-alias teacher 是使用了网络别名, 只要其他容器使用了 laojbridge的网桥,就可以,通过teacher的别名访问,比如,启动一个mysql的容器,其别名设置的是mysql,那我的teacher:V1.0容器中数据库连接信息就可以写成这样(Springboot的配置方式):
    在这里插入图片描述
    运行镜像后,通过docker ps -a 命令发现生成了新的容器,并且容器暴露了8081端口,映射本地8081端口:
    在这里插入图片描述

5、部署nginx

创建 目录 mkdir -p /home/laoj/docker/nginx/
在此目录下 创建:
镜像文件Dockerfile:

FROM docker.io/nginx:stable-alpine
MAINTAINER pangfei<695149142@qq.com>
RUN mkdir -p /home/laoj/file  && mkdir -p /home/laoj/dist
WORKDIR /home/laoj/nginx

EXPOSE 8084
USER root
ENTRYPOINT ["nginx","-c" ,"/home/laoj/nginx/conf/nginx.conf","-g","daemon off;"]

构建镜像:

docker build -t nginx:v1.0 --network laojbridge -f Dockerfile .

运行镜像:

 docker run  -it -d  -p 8084:8084  -v /home/laoj/nginx:/home/laoj/nginx  -v /home/laoj/file:/home/laoj/file  -v /home/laoj/dist:/home/laoj/dist --network laojbridge --network-alias nginx --name nginx  --restart=always nginx:v1.0 

6、部署mysql

创建文件夹:mkdir -p /home/laoj/mysql/data

 mkdir -p /home/laoj/mysql/conf

运行镜像:

docker run -d -p 3306:3306   -v /home/laoj/mysql/data:/var/lib/mysql -v /home/laoj/mysql/conf:/etc/mysql/conf.d --network laojbridge --network-alias mysql --name mysql --restart=always -e MYSQL_ROOT_PASSWORD=ky2019 -e MYSQL_DATABASE=laoj  mysql:5.7

执行数据库初始化工作:

docker exec -i mysql sh -c 'exec mysql -uroot -p123456 --default-character-set=utf8' < /home/laoj/mysql/backup/ laoj_2020-07-28.sql

有关mysql的docker 部署方式,详情可以见dockerhub ,有详细的介绍

7、部署redis

创建文件夹:

mkdir -p /home/laoj/redis/conf	
mkdir -p /home/laoj/redis/data

将配置文件拷贝至conf 目录

启动镜像:

docker run -it -d -p 6379:6379 -v /home/laoj/redis/data:/data --network laojbridge --network-alias redis --name redis --restart=always redis redis-server --requirepass 1q2w3e4r --bind 0.0.0.0 --dir /data

8、配置数据库定时备份

安装crontab :

 yum install vixie-cron
 yum install crontabs

查看crontabs的状态:service crond status

service crond start // 启动服务
service crond stop // 关闭服务
service crond restart // 重启服务
service crond reload // 重新载入配置

编写 定时任务脚本backup.sh:

#!/bin/bash
backupdir=/home/laoj/mysql/backup/

time=_` date +%Y-%m-%d`

db_name=laoj

docker exec mysql sh -c 'exec mysqldump  -uroot -p123456 --databases laoj' | gzip> $backupdir/$db_name$time.sql.gz

find $backupdir -name $db_name"*.sql.gz" -type f -mtime +7 -exec rm -rf {} \;

创建备份任务:crontab -e

编写定时 命令:

0 0 * * *  /home/laoj/mysql/backup/backup.sh

数据库恢复:

docker exec -i some-mysql sh -c 'exec mysql -uroot -p123456' < /home/laoj/mysql/backup/laoj.sql.gz

以上都是经过实践验证的。

  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
你提到了一系列的技术和工具,它们在不同的领域和应用中都有各自的作用。以下是对每个技术和工具的简要介绍: 1. Spring Boot:Spring框架的一个快速开发框架,简化了Spring应用的配置和部署。 2. MyBatis:一个持久层框架,用于通过简单的XML或注解配置来实现Java对象与数据库之间的映射关系。 3. Shiro:一个功能强大且易于使用的Java安全框架,提供身份认证、授权、加密等功能。 4. MySQL:一种流行的关系型数据库管理系统,广泛用于Web应用程序开发。 5. Redis:一种高性能的键值对存储数据库,常用于缓存、消息队列等场景。 6. Docker:一种容器化平台,可将应用程序及其依赖打包成一个独立的容器,实现快速部署和扩展。 7. 微信小程序:一种基于微信平台的移动应用程序,可以在微信客户端中运行。 8. Vue:一种流行的JavaScript前端框架,用于构建用户界面。 9. Axios:一个基于Promise的HTTP客户端,用于在浏览器和Node.js中发送HTTP请求。 10. Element UI/Element Plus:一套基于Vue的UI组件库,提供了丰富的界面组件和交互效果。 11. FastDFS:一个开源的轻量级分布式文件系统,适用于大规模的文件存储和访问。 12. Nginx:一种高性能的Web服务器和反向代理服务器,常用于负载均衡和静态资源缓存。 13. 华为云:华为提供的云计算服务平台,包括计算、存储、网络等各种云服务。 14. Git:一种分布式版本控制系统,用于管理和追踪代码的变更。 这些技术和工具在Web开发、移动应用开发、云计算等领域有着广泛的应用。具体使用哪些技术和工具取决于项目需求和开发团队的偏好。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值