专注于 JetBrains IDEA 全家桶,永久激活,教程
持续更新 PyCharm,IDEA,WebStorm,PhpStorm,DataGrip,RubyMine,CLion,AppCode 永久激活教程

Docker-compose 一键安装Redis和Mysql,部署Java

本章是基于Centos7系统教程

前提准备

安装docker

执行下面命令

$ yum install -y yum-utils device-mapper-persistent-data lvm2
$ yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
$ yum -y install docker-ce docker-ce-cli containerd.io
$ yum list docker-ce --showduplicates | sort -r
$ yum -y install docker-ce-19.03.4 docker-ce-cli-19.03.4 containerd.io
$ systemctl start docker
##启动docker后,执行下面脚本看是否正常启动
$ docker ps

安装成功后,建议配置aliyun镜像,网上很多教程。这样下载镜像就很快了。

安装docker-compose

## 确保已安装curl命令
$ curl --version
##如果没有则先安装
$ yum -y install curl
##安装docker-compose
$ curl -L https://get.daocloud.io/docker/compose/releases/download/1.25.4/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose
$ chmod +x /usr/local/bin/docker-compose
##检查是否安装成功
$ docker-compose version

部署

文件准备

1、 在home目录下(~/)新建docker目录,进入docker目录,再分别创建mysql目录和java目录。mysql目录是用来放初始化的脚本文件,我们可以把需要初始化的sql写好,命名为init.sql放在此目录下。java目录用来放我们要启动的java项目的jar包。
2、 最后的目录树为

|-- ~/
  |-- docker/
    |-- docker-compose.yml
    |-- mysql/
       |-- init.sql
    |-- java/
        |-- test-docker.jar

编写docker-compse.yml文件

version: '3'
services:
    ##mysql配置
    mysql:
        environment:
            ##root账号的密码
            MYSQL_ROOT_PASSWORD: "123456"
        image: "docker.io/mysql:latest" 
        container_name: mysql
        restart: always
        ##映射挂载
        volumes:
            ##数据目录,要确保先创建好
            - "/data/mysql:/var/lib/mysql"
            ##初始化的脚本,初始化我们存放的init.sql文件
            - "./mysql:/docker-entrypoint-initdb.d/"
        ports:
            - "3306:3306"
    ##redis配置
    redis:
      image: redis:latest
      container_name: redis
      command: redis-server --appendonly yes --requirepass "123456"
      ports:
        - "6379:6379"
      volumes:
        ##数据目录,要确保先创建好
        - /data/redis:/data
    java:
        image: ascdc/jdk8
        container_name: test-docker
        ports:
          - "8080:8080"
        volumes:
            - ~/docker/java/test-docker.jar:/data/test-docker.jar
        ##这是java项目的环境变量,yml文件配置
        environment:
            - SPRING_REDIS_HOST=127.0.0.1
            - SPRING_REDIS_PORT=6379
            - SPRING_REDIS_PASSWORD=123456
            - SPRING_DATASOURCE_URL=jdbc:mysql://127.0.0.1:3306/test-docker?allowMultiQueries=true&useUnicode=true&characterEncoding=UTF-8&useSSL=false
            - SPRING_DATASOURCE_USERNAME=root
            - SPRING_DATASOURCE_PASSWORD=123456
        entrypoint: java -jar /data/test-docker.jar 
        depends_on:
            - redis
            - mysql

启动

在~/docker目录下,执行 docker-compose up -d 即可。

存在问题

redis与mysql在未完全初始完成,java项目先跑起来就会报连不上mysql/redis的错误。虽然docker-compese.yml文件中有配置depends_on。但其只是确保容器启动成功,并不保证初始化成功。

文章永久链接:https://tech.souyunku.com/42720

未经允许不得转载:搜云库技术团队 » Docker-compose 一键安装Redis和Mysql,部署Java

JetBrains 全家桶,激活、破解、教程

提供 JetBrains 全家桶激活码、注册码、破解补丁下载及详细激活教程,支持 IntelliJ IDEA、PyCharm、WebStorm 等工具的永久激活。无论是破解教程,还是最新激活码,均可免费获得,帮助开发者解决常见激活问题,确保轻松破解并快速使用 JetBrains 软件。获取免费的破解补丁和激活码,快速解决激活难题,全面覆盖 2024/2025 版本!

联系我们联系我们