docker-compose部署Nginx+Redis+Mysql+SpringBoot服务

 

请提前安装 docker 和 docker-compose

1. 打包springboot项目, 并给redis和mysql起别名 (配置都是用的服务名而不是ip地址)

 

 

2. 新建目录, 并上传jar包

mkdir -P /data/zc_travel

 

 

3. 创建并编辑 Dockerfile 文件 (要和jar放在同一个目录)

提供下载 Dockerfile

链接: https://pan.baidu.com/s/1t4wdrh9_cxGytdDMWDXpoQ?pwd=s5h3 
提取码: s5h3 
vim Dockerfile 
FROM java:8
EXPOSE 8080
 
VOLUME /tmp
 
ENV TZ-Asia /Shanghai
RUN ln -sf /usr/share/zoneinfo/{TZ} /etc/localtime && echo "{TZ}" > /etc/timezone
 
ADD ruoyi-admin.jar /app.jar
RUN bash -c 'touch /app.jar'
ENTRYPOINT ["java","-jar","/app.jar"]

 

 

 4. 创建并编辑 docker-compose.yml文件 (要和jar放在同一个目录)

提供下载 docker-compose.yml

链接: https://pan.baidu.com/s/1ysXfc9xuXMHu6fAgVh9f8g?pwd=erah 
提取码: erah
vim docker-compose.yml
version: '3'

services:

    nginx:
        container_name: nginx
        image: nginx:1.14.2
        environment:
            - TZ=Asia/Shanghai
        ports:
            - "80:80"
        volumes:
            - ./config/nginx/conf.d:/etc/nginx/conf.d
#            - ./data/nginx/:/usr/share/nginx/html/
            - ./log/nginx/:/var/log/nginx/
        restart: always

    redis:
        container_name: zcredis
        image: redis:4.0.10
        environment:
            - TZ=Asia/Shanghai
        ports:
            - "6379:6379"
        volumes:
            - ./config/redis/redis.conf:/usr/local/etc/redis/redis.conf
            - ./data/redis/:/data/
            - ./log/redis/:/var/log/redis/
        command: redis-server /usr/local/etc/redis/redis.conf --appendonly yes --requirepass PanGuanQing_19910917
        restart: always

    mysql:
        container_name: zcmysql
        image: mysql:5.7
        environment:
            TZ: Asia/Shanghai
            MYSQL_DATABASE: zc_travel
            MYSQL_ROOT_PASSWORD: PanGuanQing_19910917
            MYSQL_ROOT_HOST: '%'
        ports:
            - "3306:3306"
        volumes:
            - ./config/mysql/my.cnf:/etc/mysql/conf.d/my.cnf
            - ./data/mysql/:/var/lib/mysql/
            - ./data/init/:/docker-entrypoint-initdb.d/
            - ./log/mysql/:/var/log/mysql/
        command: [
            '--character-set-server=utf8mb4',
            '--collation-server=utf8mb4_unicode_ci',
          #这行代码解决无法访问的问题
            '--default-authentication-plugin=mysql_native_password'
        ]
        security_opt:
            - seccomp:unconfined
        restart: always

    mazhichu:
        container_name: mazhichu
        build:
            context: .
            dockerfile: Dockerfile
        environment:
            TZ: Asia/Shanghai
            spring.datasource.host: mysql
            spring.redis.host: redis
        ports:
          - "8009:8009"
        depends_on:
            - nginx
            - redis
            - mysql
        restart: always

docker-compose格式解释:

version: ‘3’: 表示使用第三代语法来构建 docker-compose.yaml 文件。
services: 用来表示 compose 需要启动的服务,上面的配置文件中有四个服务分别为:nginx、redis、mysql还有我的项目mazhichu。
Image:指定下载镜像版本
container_name: 指定容器名称
environment: 此节点下的信息会当作环境变量传入容器,例如mysql 服务配置了数据库、密码和权限信息。
ports: 表示对外开放的端口
volumes: 加载本地目录下的配置文件到容器目标地址下
restart: always 表示如果服务启动不成功会一直尝试。
depends_on:配置依赖服务,表示需要先启动 depends_on 下面的服务后,再启动本服务。
links:与depends_on相对应,depends_on控制启动顺序,links控制容器连接问题。值为"服务名:别名"或者直接使用服务名

 

 

5. 先启动mysql容器

docker-compose up -d mysql

连接mysql, 导入sql文件

 

 

6. 启动全部容器

docker-compose up -d

 

 

7. 查看已启动的容器

docker ps -a

 

 

 

8. 查看日志信息

docker logs -f --tail 10 容器ID

 

 

9. 访问项目

  • 0
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

yixian123.com

谢谢打赏,祝老板心想事成

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值