linux centos7 docker compose 启动包含redis、mysql的spring boot项目

安装docker compose

curl -L https://get.daocloud.io/docker/compose/releases/download/1.25.5/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose

授权

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

创建docker-compose.yml(Encoding=utf-8,format=unix)

如:/docker_data/springboot/docker-compose.yml

version: "3"

services:
  #项目名称
  fu:
    #镜像名称:版本号
    image: fu:1
    #Docker容器重启时,当前容器也会自动重启
    restart: always
    #容器名称
    container_name: fu
    #容器映射到宿主机端口
    ports:
      - "10086:10086"
    #数据映射
    volumes:
      - /docker_data/springboot/logs:/logs/
      - /docker_data/springboot/application.yml:/application.yml
    #启动依赖项
    depends_on:
      - redis
      - mysql

  redis:
    image: redis:6.2.6
    container_name: redis-6.2.6
    ports:
      - "6379:6379"
    #前提是你linux环境下面的/docker_data/redis文件夹内有redis.conf配置文件、data文件夹,没有的要先cp镜像文件
    #docker cp redis6.2.6的镜像ID:/etc/redis/redis.conf /docker_data/redis/redis.conf
    volumes:
      - /docker_data/redis/redis.conf:/etc/redis/redis.conf
      - /docker_data/redis/data:/data
    #使用容器的配置文件,由于我们配置了-v,因此会拿宿主机的配置文件
    command: redis-server /etc/redis/redis.conf

  mysql:
    image: mysql:8.0.23
    container_name: mysql-8.0.23
    #环境变量等效于ENV
    environment:
      MYSQL_ROOT_PASSWORD: '123456'
      MYSQL_ALLOW_EMPTY_PASSWORD: 'no'
      #初始化的时候会创建fu这个数据库
      MYSQL_DATABASE: 'fu'
    ports:
      - "3306:3306"
    volumes:
      - /docker_data/mysql/data:/var/lib/mysql
      - /docker_data/mysql/log:/var/log/mysql
      - /docker_data/mysql/conf:/etc/mysql/conf.d
    #解决外部无法访问的问题
    command: --default-authentication-plugin=mysql_native_password

把springboot项目打成jar包放到Linux服务器,并创建Dockerfile,如:/docker_data/springboot/fu.jar

Dockerfile内内如下

#基础镜像使用
FROM openjdk:8-jre-alpine
#作者
MAINTAINER Meta39
#指定临时文件目录为tmp。在主机/var/lib/docker目录下创建了一个临时文件并链接到容器的/tmp
VOLUME /tmp
#将jar包添加到容器中并更改为相应的名称
ADD fu.jar fu.jar
#运行jar包
ENTRYPOINT ["nohup","java","-jar","/fu.jar","&"]
#暴露端口
EXPOSE 10086

把jar做成image镜像文件

docker build -t fu:1 .

查看构建的镜像

docker images

如下所示:

REPOSITORY   TAG       IMAGE ID       CREATED          SIZE
fu           1         a2d112b8af2b   32 seconds ago   732MB

运行docker-compose按redis、mysql、springboot顺序启动

docker-compose -f /docker_data/springboot/docker-compose.yml up -d

如下所示则表示启动成功:

Starting mysql-8.0.23 ... done
Starting redis-6.2.6  ... done
Starting fu           ... done

停止docker compose

docker-compose stop
  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值