创建文件夹/文件
mkdir ./mysql ./mysql/data ./mysql/conf ./mysql/mysql-files
touch ./mysql/conf/my.cnf
mkdir ./redis ./redis/data ./redis/conf
touch ./redis/conf/redis.conf
-
- vim docker-compose-mysql-redis.yml
#docker-compse对应版本docker版本
version: '3'
services:
mysql:
image: mysql:8.0.28
container_name: my-mysql
command:
# MySQL8的密码验证方式默认是 caching_sha2_password,但是很多的连接工具还不支持该方式
# 就需要手动设置下mysql的密码认证方式为以前的 mysql_native_password 方式
--default-authentication-plugin=mysql_native_password
--character-set-server=utf8mb4
--collation-server=utf8mb4_general_ci
--explicit_defaults_for_timestamp=true
--lower_case_table_names=1
--max_allowed_packet=128M;
# docker的重启策略:
# restart: always
environment:
MYSQL_ROOT_PASSWORD: 123456 # root用户的密码
ports:
- 3306:3306
volumes:
- /home/liangsl/dg/mysql/data:/var/lib/mysql
- /home/liangsl/dg/mysql/conf/my.cnf:/etc/mysql/my.cnf
- /home/liangsl/dg/mysql/mysql-files:/var/lib/mysql-files/
redis:
# 镜像及版本
image: redis:6.2.6
# 自定义容器名
container_name: my-redis
# docker启动时,自动启动该容器
# restart: always
# 挂载映射,可以让数据或配置持久化
ports:
# <本地端口> : <docker容器端口>
- 6379:6379
volumes:
# <本地配置文件> : <docker中的配置文件> : <ro:docker容器对该文件只读,默认是rw可读可写>
- /home/liangsl/dg/redis/conf/redis.conf:/etc/redis/redis.conf:ro
# <本地数据目录> : <docker中的数据目录>
- /home/liangsl/dg/redis/data:/data
# <本地日志目录> : <docker中的日志目录>
# redis不具有自动创建/logs的权限,如果redis.conf中指定的相对位置,则数据目录已经可以映射出日志文件
#- ../redis/logs:/logs
# docker执行的启动命令
command: redis-server /etc/redis/redis.conf
运行
-
- docker-compose -f docker-compose-mysql-redis.yml up -d
查看
-
- docker-compose -f docker-compose-mysql-redis.yml ps
停止
-
- docker-compose -f docker-compose-mysql-redis.yml down