docker-compose啓動mysql、redis服務

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加速器:https://mp.csdn.net/console/editor/html/82224386

 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桌面管理工具下載:http://www.downcc.com/soft/322714.html 

redis桌面管理工具下載:https://pan.baidu.com/s/1RQGnjlXvPaiFSh1wkvh6pw     提取碼: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一鍵部署:https://github.com/sgs921107/docker_dbs/commits/master

 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章