Create Image and Deploy Containers of MySQL Servers (2 Primary and 1 Replica) for a Listing and Searching Application (LSEA) .
* Build
sudo docker build --no-cache -t lsea/ubuntu-22.04-mysql-server-and-mysql-shell-8.0.36 .
Docker compose file name: docker-compose-mysql.yml
* Deploy containers
set PWD=%cd% && sudo docker compose -f docker-compose-mysql.yml --project-directory $PWD --project-name "lsea-app" up -d
* Stop and remove containers with related network and volumes
set PWD=%cd% && sudo docker compose -f docker-compose-mysql.yml --project-directory $PWD --project-name "lsea-app" down && sudo docker volume rm $(docker volume ls -q)
* Stop services
set PWD=%cd% && sudo docker compose -f docker-compose-mysql.yml --project-directory $PWD --project-name "lsea-app" stop
* Start services
set PWD=%cd% && sudo docker compose -f docker-compose-mysql.yml --project-directory $PWD --project-name "lsea-app" start
* Log: view output from containers
set PWD=%cd% && sudo docker compose -f docker-compose-mysql.yml --project-directory $PWD --project-name "lsea-app" logs
* Primary-Node-1
sudo docker exec -it primary-node-1 /bin/bash -c "sudo service mysql stop"
sudo docker exec -it primary-node-1 /bin/bash -c "sudo service mysql status"
sudo docker exec -it primary-node-1 /bin/bash -c "sudo service mysql start"
* Primary-Node-2
sudo docker exec -it primary-node-2 /bin/bash -c "sudo service mysql stop"
sudo docker exec -it primary-node-2 /bin/bash -c "sudo service mysql status"
sudo docker exec -it primary-node-2 /bin/bash -c "sudo service mysql start"
* Replica-Node-3
sudo docker exec -it replica-node-3 /bin/bash -c "sudo service mysql stop"
sudo docker exec -it replica-node-3 /bin/bash -c "sudo service mysql status"
sudo docker exec -it replica-node-3 /bin/bash -c "sudo service mysql start"
* Log
sudo docker logs primary-node-1
sudo docker logs primary-node-2
sudo docker logs replica-node-3
* Inspect
sudo docker inspect primary-node-1
sudo docker inspect primary-node-2
sudo docker inspect replica-node-3
sudo docker exec -it primary-node-1 /bin/bash
sudo docker exec -it primary-node-2 /bin/bash
sudo docker exec -it replica-node-3 /bin/bash
sudo docker exec -it primary-node-1 /bin/bash -c "mysql";
sudo docker exec -it primary-node-2 /bin/bash -c "mysql";
sudo docker exec -it replica-node-3 /bin/bash -c "mysql";
sudo docker exec -it primary-node-1 /bin/bash -c "mysql --execute 'SHOW MASTER STATUS\G; SHOW REPLICA STATUS\G; SHOW SLAVE HOSTS;'"
sudo docker exec -it primary-node-2 /bin/bash -c "mysql --execute 'SHOW MASTER STATUS\G; SHOW REPLICA STATUS\G; SHOW SLAVE HOSTS;'"
sudo docker exec -it replica-node-3 /bin/bash -c "mysql --execute 'SHOW MASTER STATUS\G; SHOW REPLICA STATUS\G; SHOW SLAVE HOSTS;'"
* Configuration Settings in my.conf and other default values
sudo docker exec -it primary-node-1 /bin/bash -c "sudo mysql --execute 'SHOW VARIABLES\G;'"
sudo docker exec -it primary-node-2 /bin/bash -c "sudo mysql --execute 'SHOW VARIABLES\G;'"
sudo docker exec -it replica-node-3 /bin/bash -c "sudo mysql --execute 'SHOW VARIABLES\G;'"
Copyright © 2024. MongoExpUser
Licensed under the MIT license.
