docker-compose启动mysql、redis服务

本文介绍了如何在CentOS系统上通过docker-compose安装和配置MySQL与Redis服务,包括设置docker加速器、创建docker-compose.yml文件、配置环境变量、创建挂载目录和配置文件,以及启动服务的步骤。同时提供了mysql和redis的桌面管理工具下载链接,并提醒了在不同容器间访问服务时需要注意的网络配置问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.自行安装docker和docker-compose

centos用户可将以下代码cp到shell文件执行

#!/bin/bash


<<!
判断服务是否已安装
参数    是否必须
服务名  是
返回值  1/0(是否存在)
!
function is_exist(){
    ret=`$1 --version`
    echo $ret
    if [ -n "$ret" ]
    then
        return 1
    else
        return 0
    fi
}
                                        

# 移除旧版本docker
# yum remove docker  docker-common docker-selinux docker-engine

# 判断docker是否已安装
is_exist docker
if [ $? = 0 ]
then
    # 更新yum
    yum update -y
    
    # 安装依赖
    yum install -y yum-utils device-mapper-persistent-data lvm2
    # 添加docker源 
    sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
    # 安装docker
    yum install -y docker-ce
    # 安装命令补全
    yum install -y bash-completion
fi

# 启动docker配置开机自启
systemctl start docker
systemctl enable docker

# 判断docker-compose是否已安装
is_exist docker-compose
if [ $? = 0 ]
then
    # 安装docker-compose
    yum -y install epel-release
    yum -y install python-pip
    yum -y install python-devel
    yum -y groupinstall 'Development Tools'
    
    yum clean all && rm -rf /var/cache/yum/* && rm -rf /tmp/*
    # 安装docker-compose  
    pip install --no-cache-dir docker-compose 
fi

配置docker加速器:优快云

 2.创建并进入工作目录   如:工作目录为/docker_dbs

mkdir /docker_dbs && cd /docker_dbs

3.编写docker-compose配置文件 创建配置文件docker-compose.yml输入以下内容

vi docker-compose.yml

# 配置文件版本
version: "3"


# 管理的服务
services:

    mysql:
        image: mysql:${MYSQL_VERSION}
        container_name: mysql_${MYSQL_VERSION}
        ports:
            - ${REAL_MYSQL_PORT}:3306
        volumes:
            - ${MYSQL_DIR}/data:/var/lib/mysql
            - ${MYSQL_DIR}/my.cnf:/etc/mysql/my.cnf
            - ${MYSQL_DIR}/logs:/logs
        environment:
            TZ: Asia/Shanghai
            MYSQL_ROOT_PASSWORD: ${MYSQL_ROOT_PASSWORD}
            MYSQL_ROOT_HOST: ${MYSQL_ROOT_HOST}
        logging:
            driver: "json-file"
            options:
                max-size: "200m"
                max-file: "3"
        restart: always


    redis:
        image: redis:${REDIS_VERSION}
        container_name: redis_${REDIS_VERSION}
        ports:
            - ${REAL_REDIS_PORT}:6379
        volumes:
            - ${REDIS_DIR}/data:/data
            - ${REDIS_DIR}/redis.conf:/etc/redis/redis.conf
            - ${REDIS_DIR}/logs:/logs
        logging:
            driver: "json-file"
            options:
                max-size: "200m"
                max-file: "3"
        restart: always
        command: ["redis-server", "/etc/redis/redis.conf"]

4.配置docker-compose配置文件所用的变量   创建.env文件输入以下内容(可根据自己需求进行配置)

vi .env

MYSQL_VERSION=5.7
MYSQL_DIR=./mysql
REAL_MYSQL_PORT=3306
MYSQL_ROOT_PASSWORD=123456
MYSQL_ROOT_HOST=%

REDIS_VERSION=latest
REDIS_DIR=./redis
REAL_REDIS_PORT=6379

5.创建mysql和redis所需的挂在目录及配置文件

创建挂在目录

mkdir -p {mysql,redis}/{data,logs}

编写mysql配置(可根据自己需求进行配置)   创建mysql/my.cnf进行配置(根据自己需求进行配置)

vi mysql/my.cnf

[mysqld]
default-storage-engine=INNODB
default-time-zone='+8:00'
innodb_rollback_on_timeout='ON'
max_connections=500
innodb_lock_wait_timeout=500
character-set-server=utf8mb4

[client]
default-character-set=utf8mb4

[mysql]
default-character-set=utf8mb4

编写mysql配置(可根据自己需求进行配置)   创建redis/redis.conf进行配置(根据自己需求进行配置)

vi redis/redis.conf

# 不守护进程
daemonize no
port 6379
bind 0.0.0.0
# 持久化
appendonly yes

 6.启动服务

# 检查配置是否正确
docker-compose config

# 启动服务:docker-compose up [-d 后台启动] [service 启动的服务]
# 后台启动mysql
docker-compose up -d mysql
# 后台启动redis
docker-compose up -d redis

# 更多操作:docker-compose -h  或查看官方文档:https://docs.docker.com/compose/reference/

=============================================================================================

mysql桌面管理工具下载:navicat premium12正式版-Navicat Premium 12中文正式版下载32/64位 v12.1.22 已激活版-附注册机-绿色资源网 

redis桌面管理工具下载:百度网盘 请输入提取码     提取码:p779

=============================================================================================

如果要在本机其它容器访问不到mysql和redis,请在宿主机将映射到宿主机的端口添加到防火墙

例centos7:firewall-cmd --permanent --add-port=3306/tcp

firewall-cmd --permanent --add-port=6379/tcp

加载变更:firewall-cmd --reload

注意:在其它容器中需访问宿主机的ip地址或docker0的ip地址,查看docker0的地址:ip addr show docker0

=============================================================================================

centos7+用户可直接通过git一键部署:Commits · sgs921107/docker_dbs · GitHub

要使用docker-compose部署RedisMySQL和Java服务,可以按照以下步骤进行操作: 1. 首先,创建一个名为`docker-compose.yaml`的文件,并在该文件中定义服务: ``` version: '3' services: redis: image: redis ports: - '6379:6379' mysql: image: mysql environment: - MYSQL_ROOT_PASSWORD=your_password - MYSQL_DATABASE=your_database - MYSQL_USER=your_user - MYSQL_PASSWORD=your_password volumes: - ./data:/var/lib/mysql ports: - '3306:3306' java_app: build: ./your_java_app_directory ports: - '8080:8080' depends_on: - redis - mysql ``` 2. 在上述`docker-compose.yaml`文件中,定义了3个服务:`redis`、`mysql`和`java_app`。 - `redis`服务使用Redis镜像,并将容器内的6379端口映射到主机的6379端口。 - `mysql`服务使用MySQL镜像,并设置环境变量用于配置MySQL实例,同时将容器内的3306端口映射到主机的3306端口。 - `java_app`服务将使用构建目录中的Java应用程序构建,并将容器内的8080端口映射到主机的8080端口。同时,此服务依赖于`redis`和`mysql`服务,确保在启动`java_app`服务之前,`redis`和`mysql`服务已经启动。 3. 在`mysql`服务的环境变量中,根据需要设置MySQL的root密码、数据库名称、用户名和密码。同时,为了持久化MySQL的数据,将容器内的`/var/lib/mysql`目录映射到主机的`./data`目录。 4. 在`java_app`服务中,构建Java应用程序的镜像需要指定所在的目录。确保将Java应用程序的构建文件和依赖项放置在正确的目录中。 5. 最后,在命令行中使用`docker-compose up`命令启动服务。这将根据`docker-compose.yaml`文件中的配置,创建并启动RedisMySQL和Java服务Docker容器。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值