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