运行环境:ubuntu-server:14.04 docker 1.9
安装镜像:sudo docker pull mysql:5.5
一、在本机创建一个文件用来存放mysql的配置文件
我是在/opt/mysql目录下,分别创建 my.cng(主),my-slave.cnf(从)两个配置文件
编写主库配置文件my.cnf:
[mysqld]
log-bin=mysql-bin
server-id=12
skip-host-cache
skip-name-resolve
datadir=/var/lib/mysql
!includedir /etc/mysql/conf.d/
编写从库配置文件my-slave.cnf:
[mysqld]
log-bin=mysql-bin
server-id=11
skip-host-cache
skip-name-resolve
datadir=/var/lib/mysql
#指的是需要同步的数据库
replicate-do-db=test
!includedir /etc/mysql/conf.d/
注:Mysql版本从5.1.7以后开始就不支持“master-host”类似的参数,避免踩坑.
mysql的主从复制是基于日志的所以需要配置:log-bin=mysql-bin 开启二进制日志
server-id需要在主从环境内唯一。
二、
启动主库容器:sudo docker run -d -e MYSQL_ROOT_PASSWORD=root -p 192.168.1.112:3307:3306 -v /opt/mysql/my.cnf:/ect/mysql/my.cnf --name:mysql-main mysql:5.5
启动从库容器:sudo docker run -d -e MYSQL_ROOT_PASSWORD=root -p 192.168.1.112:3308:3306 -v /opt/mysql/my-slave.cnf:/ect/mysql/my.cnf -- name:mysql-slave mysql:5.5
-d:创建后台进程
-e:设定容器的环境变量 这里设置了mysql的root密码
-p(小写):指定本机和容器的端口映射 格式: host:host-port:container-port