1、下载mysql镜像
docker pull mysql:5.7
2、宿主主机创建挂载目录
dockerFile
- data
- conf
- logs
3、在dockerFile/conf目录下创建文件my.cnf
4、运行容器命令
docker run --name mysql -d -p 3306:3306 -v G:\dockerFile\mysql\data:/var/lib/mysql -v G:\dockerFile\mysql\conf:/etc/mysql/conf.d -v G:\dockerFile\mysql\logs:/var/log/mysql -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7
结果如下:
参数说明:
-v /your_directory/mysql/data:/var/lib/mysql 挂载数据库数据
-v /your_directory/mysql/conf:/etc/mysql/conf.d 挂载配置文件
-v /your_directory /mysql/logs:/var/log/mysql 挂载数据库日志
-e MYSQL_ROOT_PASSWORD=your_password 数据库root用户的密码
mysql 镜像名
--name your_db_name 定义的容器名
-d 后台运行容器
注:[宿主主机相应目录]:[容器相应目录]
5、在宿主主机文件my.cnf里添加对binlog的支持
[mysqld]
datadir=G:/dockerFile/mysql/data
port = 3306
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
symbolic-links=0
max_connections=400
innodb_file_per_table=1
#表名大小写不明感,敏感为
lower_case_table_names=1
# 打开binlog
log-bin=G:/dockerFile/mysql/data/mysql-bin
character_set_server=utf8
collation_server=utf8_general_ci
# 选择ROW(行)模式
binlog-format=ROW
##其他正常master/slave配置
##这个配置一定要打开
log_slave_updates=true
# 配置MySQL replaction需要定义,不要和canal的slaveId重复
server_id=1
6、开启binlog日志命令
docker exec c1910ec78d528f0970 bash -c "echo 'log-bin=/var/lib/mysql/mysql-bin' >> /etc/mysql/mysql.conf.d/mysqld.cnf"
docker exec c1910ec78d528f0970 bash -c "echo 'server-id=123454' >> /etc/mysql/mysql.conf.d/mysqld.cnf"
docker restart c1910ec78d528f0970
结果如下: