Docker-Compose 集成SpringBoot + redis + mysql

3 篇文章 0 订阅
3 篇文章 0 订阅

Docker-Compose 集成SpringBoot + redis + mysql

1.首先构建Springboot项目

1.1、在Dos窗口使用cd命令切换到项目目录下

在这里插入图片描述

1.2、在Dos窗口下执行 mvn package -P dev-docker docker:build

在这里插入图片描述

1.3、运行docker image ls,列出所有本地镜像

在这里插入图片描述

2.首先创建一个空目录,例如 DockerIntegrate

3.在DockerIntegrate目录下创建一个文件,文件名为docker-compose.yml

version: '3'

services:
  # 指定服务名称
  xgs:
    # 指定服务使用的镜像(这个镜像是已经构建好的jar包)
    image: springio/xgs:latest
    # 指定容器名称
    container_name: xgs-comp
    # 指定服务运行的端口
    ports:
      - 18888:8888
  redis:
    image: redis:5.0.14
    restart: always
    container_name: my_redis
    # Redis 的密码需要自己在与容器共享的配置 redis.conf 中加入,即更改配置中 requirepass yourpassword
    command: redis-server /Users/mac/Documents/DockerHome/app/redis/conf/redis.conf
    # 直接在其所在目录下执行 docker-compose up -d,即可在 Docker 中生成一个带密码的 Redis 容器。
    command: redis-server --requirepass 123456
    ports:
      - "6380:6379"
    volumes:
      - /Users/mac/Documents/DockerHome/app/redis/data:/data
      - /Users/mac/Documents/DockerHome/app/redis/conf/redis.conf:/usr/local/etc/redis/redis.conf
      # 容器与宿主机时间同步
      - /etc/localtime:/etc/localtime
    environment:
      TIME_ZONE: Asia/Beijing
  mysql57:
    image: mysql/mysql-server:5.7
    ports:
      - "3307:3306"
    environment:
      - MYSQL_ROOT_PASSWORD=123
    volumes:
      - /Users/mac/Documents/DockerHome/app/mysql/data:/var/lib/mysql
    deploy:
      placement:
        constraints:
          - node.hostname==mysqld
      restart_policy:
        condition: on-failure

图文解释

在这里插入图片描述

4、切换到DockerIntegrate目录下执行下面命令

docker-compose up -d

在这里插入图片描述

5、使用命令 docker ps 查看docker启动项

以下看到三个服务,springboot项目+redis+mysql 服务全部启动成功,并且port 都做好了本地映射

在这里插入图片描述

6.接下来就可以使用宿主机的图形工具连接docker中的redis

在这里插入图片描述

7.因为mysql还需要做一些配置才可以使用宿主机连接

7.1、从容器中连接到mysql服务器

docker exec -it mysql1 mysql -uroot -p
#切换到mysql数据库下
use mysql
#修改root的host为%
update user set host='%' where user='root'
#刷新,否则不生效
FLUSH PRIVILEGES;
#给root进行授权,并设置密码123 
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '123';
#刷新,否则不生效
FLUSH PRIVILEGES;
**然后使用本机IP+映射的端口号即可访问docker中的mysql**

在这里插入图片描述

做到这一步,docker中的mysql,redis 就可以使用宿主机连接了,并且springboot项目也就启动起来了,如果因为前期mysql没有做root授权,导致springboot项目启动的时候导致连接不到数据库,只需要做好root授权,以后,单独重新启动springboot项目即可

在这里插入图片描述

**文章到这里就结束了,如果有任何疑问可以私信我或者评论区下方**
  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值