栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

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

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

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

请提前安装 docker 和 docker-compose

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

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

mkdir -P /data/zc_travel

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

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放在同一个目录)

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. 访问项目

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/919444.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号