sudo docker pull mysql:latest
Launch MySQL [master] Server
sudo docker run --name mysql-master -e MYSQL_ROOT_PASSWORD=mypassword -e MYSQL_USER=myuser -e MYSQL_PASSWORD=mypassword -e MYSQL_DATABASE=mydb --rm mysql
Connect to MySQL Server via inter-container link
sudo docker run -it --link mysql-master:mymaster --rm mysql sh -c ' mysql --host=mymaster --user=myuser --password=mypassword mydb'
sudo docker run -it --link mysql-master:mymaster --rm mysql sh -c ' mysql --host=mymaster --user=root --password=mypassword mydb'
Launch MySQL [slave] Server
sudo docker run --name mysql-slave -e MYSQL_ROOT_PASSWORD=mypassword -e MYSQL_USER=myuser -e MYSQL_PASSWORD=mypassword -e MYSQL_DATABASE=mydb --rm mysql
Start Replication between MySQL Master and Slave
mkdir sql
cat << EOF > sql/setup_replication.sql
CREATE USER slave@'%' IDENTIFIED BY 'mypassword';
GRANT SELECT, PROCESS, FILE, SUPER, REPLICATION CLIENT, REPLICATION SLAVE, RELOAD ON *.* TO slave@'%';
Flush Privileges;
CHANGE MASTER TO
MASTER_HOST='mymaster',
MASTER_USER='slave',
MASTER_PASSWORD='mypassword';
START slave;
show slave status\\ G
EOF
sudo docker run -it --link mysql-master:mymaster -v $( pwd) /sql:/sql --rm mysql sh -c ' mysql --host=mymaster --user=root --password=mypassword mydb < /sql/setup_replication.sql'
sudo docker run -it --link mysql-master:mymaster -v $( pwd) /sql:/sql --rm mysql sh -c ' mysql --host=mymaster --user=root --password=mypassword mydb < /sql/setup_replication.sql'