当前位置:   article > 正文

Docker部署Springboot、Mysql、Redis_springboot配置文件中使用docker compose的服务名

springboot配置文件中使用docker compose的服务名

前言:为了解决我们每次部署项目需要在linux上面下载安装软件,耗费了我们很多的时间,而且有时候我们需要我们的工程在别人的linux上面部署,这个时候别人的linux没有下载我们需要的环境,这个时候就很麻烦,所以我们用虚拟化容器技术:docker来解决问题

一、linu上安装docker和docker-compose

yum包更新到最新

yum update

安装需要的软件包 yum-utils提供yum-config-manager功能,另外两个是devicemapper驱动依赖的

yum install -y yum-utils device-mapper-persistent-data lvm2

设置yum源

yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

安装docker,出现选项全部填y,回车(可能会持续15分钟,去干点其他事情把)

yum install -y docker-ce

查看docker版本,看是否安装成功

docker -v

出现下面这行,则代表安装成功


上面我们成功安装了docker,下面我们来安装一下docker-compose,有了这个,我们才能使我们写的docker-compose.yml文件生效

一、将编译好的二进制文件放到我们的linux系统中(这一步时间可能有点久,稍微耐心等一下把)

curl -L https://github.com/docker/compose/releases/download/1.22.0/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose

二、设置文件可执行的权限

chmod +x /usr/local/bin/docker-compose

三、查看版本信息

docker-compose -version

二、配置镜像加速器

阿里云、腾讯云、华为云都有此服务,免费的

这里以阿里云为例子

然后右边就会有加速器地址、教程,跟着操作就行了,这里就不再贴出来了,不懂的评论区留言

三、项目部署

 1、打包你的springboot项目(idea里面的右侧Maven按钮点击出来就有了)

 2、在你的classpath会生成一个target的黄色文件夹,里面有一个jar包,将它ctrl+X下来,放到你想放的地点(不要忘记了就行)

3、将这个文件上传到服务器上面,我这里用的是finalShell,还挺好用的,直接上传就行,不用使用命令

第3步之前,可以先在我们的root目录创建一个文件夹,放到里面去,类似下面

  1. #代表注释
  2. # 进入到root目录
  3. cd ~
  4. # 创建一个docker-compose文件夹
  5. mkdir docker-compose
  6. # 进入到这个文件夹中
  7. cd docker-compose

4、编写我们的Dockfile文件,需要放在我们刚刚创建的docker-compose里面

  1. #代表注释
  2. # 创建一个文件,用于将我们的jar包生成镜像,有了镜像我们就能生成容器来使用了,这里只是单纯范讲,大家如果想要详细了解docker的话可以自己去看一下b站的课程
  3. vim Dockerfile
  4. Deckerfile文件如下
  5. # 设置jdk版本
  6. FROM java:8
  7. # 设置我们的个人信息,大家根据需求随便写
  8. MAINTAINER xxx <xxx@XXX.com>
  9. # 这两行是设置我们容器内的时间以及jvm的时间(默认不是GMT)
  10. RUN /bin/cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
  11. RUN echo "Asia/Shanghai" > /etc/timezone
  12. # 前面的xxxxxx是我们上传的jar包名称,后面的是我们新命名的jar包
  13. ADD xxxxxx.jar xxxxxx.jar
  14. # 执行我们的jar包,xxx是上面刚命名的新名字
  15. CMD java -jar xxx.jar
  16. 键盘按esc,加英文冒号:,输入wq,回车即可保存
  17. 快捷键的话可以点击键盘shift+两下Z即可

现在我们的docker-compose文件夹下面就有了一个jar包和一个Dockerfile文件

5、编写我们最重要的文件:docker-compose.yml

  1. #表示注释
  2. # 指定我们docker-compose的版本
  3. version: "3"
  4. # 设置我们的服务
  5. services:
  6. # 配置mysql服务
  7. mysql:
  8. # 这里指定我们的镜像文件,mysql版本是5.7,这里要使用docker命令拉取镜像,这里先写着,后面我教大家怎么拉取镜像
  9. image: mysql:5.7
  10. # 配置我们容器的名字
  11. container_name: mysql
  12. # 通过我们的宿主机的3306端口映射到容器里的3306端口,因为容器内的网络与我们外界是不互通的,只有宿主机能够去访问我们的容器,这样我们就能通过宿主机的3306端口去访问容器的mysql了
  13. ports:
  14. - "3306:3306"
  15. # 配置环境,主要是配置我们的mysql的登陆密码,mysql容器创建出来默认可以用不同的ip地址访问,所以这里不用进行配置
  16. environment:
  17. - MYSQL_ROOT_PASSWORD=root
  18. # 配置挂载的文件夹,在当前文件夹下面创建mysql文件夹,里面有conf,logs,data,分别挂载到容器mysql中的conf.d,logs,mysql中,这样当我们的容器如果没了,但是我们的数据还是在的
  19. volumes:
  20. - ./mysql/conf:/etc/mysql/conf.d
  21. - ./mysql/logs:/logs
  22. - ./mysql/data:/var/lib/mysql
  23. # 配置redis服务
  24. redis:
  25. # 设置容器对应的镜像,同上,等下详细讲
  26. image: redis:5.0
  27. # 设置容器名
  28. container_name: redis
  29. # 设置命令,这里是用来设置我们的redis登陆密码的,root处是密码,自己根据需求填入即可
  30. command: redis-server --requirepass root
  31. # 同上,作为端口映射
  32. ports:
  33. - "6379:6379"
  34. # 同上,挂载文件夹
  35. volumes:
  36. - ./redis:/data
  37. # 配置springboot服务
  38. springboot:
  39. # 生成镜像,用.它会自动去当前目录下面去找一个Dockerfile的文件,然后根据里面的配置去生成一个镜像
  40. build: .
  41. # 指定我们生成的镜像的名字和版本号
  42. image: springboot:v1.0.0
  43. # 指定容器名
  44. container_name: springboot
  45. # 同上,做端口映射
  46. ports:
  47. - "8080:8080"
  48. # 写清楚我们springboot依赖的服务,有mysql以及redis,这里的名称是service名
  49. depends_on:
  50. - mysql
  51. - redis

上面写清楚注释是方便大家阅读,我这里再贴一份没有注释的,大家直接拿来食用即可

  1. FROM java:8
  2. MAINTAINER PEACEUAI <PEACEUAI@XXX.com>
  3. RUN /bin/cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
  4. RUN echo "Asia/Shanghai" > /etc/timezone
  5. ADD xxxxxx.jar app.jar
  6. CMD java -jar app.jar
  1. version: "3"
  2. services:
  3. mysql:
  4. image: mysql:5.7
  5. container_name: mysql
  6. ports:
  7. - "3306:3306"
  8. environment:
  9. - MYSQL_ROOT_PASSWORD=root
  10. volumes:
  11. - ./mysql/conf:/etc/mysql/conf.d
  12. - ./mysql/logs:/logs
  13. - ./mysql/data:/var/lib/mysql
  14. redis:
  15. image: redis:5.0
  16. container_name: redis
  17. command: redis-server --requirepass root
  18. ports:
  19. - "6379:6379"
  20. volumes:
  21. - ./redis:/data
  22. springboot:
  23. build: .
  24. image: springboot:v1.0.0
  25. container_name: springboot
  26. ports:
  27. - "8080:8080"
  28. depends_on:
  29. - mysql
  30. - redis

这里给大家提醒一个地方就是,你在springboot设置mysql和redis的Host的时候,我们开发一般会填写localhost:3306,这里大家要将我们的localhost改成我们的service名字,所以会变成mysql:3306,redis配置host就是redis,我们设置了密码,所以记得在redis配置里面加上密

最后一步:用docker compose启动我们的容器(记得在文件当中启动)

确保已经拉取好了镜像文件,没有的话继续往下看;确保当前文件夹下面有Dockerfile、jar包、docker-compose.yml这三个文件

docker-compose up

完成之后,等待一段时间即可,启动之后你会发现当前文件夹下面有这几个文件

Dockerfile、jar包、Docker-compose.yml、mysql、redis

如果存在这几个文件即代表成功啦~


一、拉取镜像文件

这里大家可以先去一个网站找找看适合自己的镜像以及版本,这里我给大家示范一次

网站:hub.docker.com

上图自己找个适合自己的版本

开始拉取镜像

开始先查看一下自己本地有哪些镜像

docker images

 刚开始的话,我们会发现没有镜像,开始拉取

  1. # 这里拉取的是mysql的5.7版本的,自己根据需求改变即可,一定要注意,这个版本一定是官网有的才可用
  2. docker pull mysql:5.7
  1. # 拉取redis的5.0版本,自己根据需求变更
  2. docker pull redis:5.0

之后再根据docker images即可看到已经有两个镜像在本地了

这里再给大家分享几个docker的语法

  1. #代表注释
  2. # 删除一个镜像,这里示例删除的是一个mysql:5.7版本的,大家根据需求修改即可
  3. docker rmi mysql:5.7
  4. # 寻找一个镜像,这里示例寻找的是mysql镜像
  5. docker search mysql
  6. # 开启docker服务
  7. systemctl start docker
  8. # 关闭docker服务
  9. systemctl stop docker
  10. # 重启一个docker服务
  11. systemctl restart docker
  12. # 设置docker服务开机自启动
  13. systemctl enable docker
  14. # 查看当前的容器状态(未启动的也会显示出来)
  15. docker ps -a
  16. # 查看当前的容器状态(未启动的不会显示出来)
  17. docker ps
  18. # 关闭一个容器,xxx即使你查看docker容器最左侧显示的id值
  19. docker stop xxx
  20. # 开启一个容器
  21. docker start xxx
  22. # 重启一个容器
  23. docker restart xxx
  24. # 进入一个容器 同理,xxx也是id值
  25. docker exec -it xxx /bin/bash
  26. # 退出容器
  27. exit
  28. # 生成一个新的容器,在我们这个教程不会用到这个 这个不是后台运行,退出容器就会关闭容器,开启完容器默认会进入容器中
  29. docker run -it mysql:5.7 /bin/bash
  30. # 生成一个新的容器,这个是后台运行,不会默认进入容器中
  31. docker run -id mysql:5.7 /bin/bash
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家自动化/article/detail/180582?site
推荐阅读
相关标签
  

闽ICP备14008679号