MySQL Server Container with simple script to add new users and databases.
375
Author : CarbonSphere
Email : [email protected]
1 : Clone carbonsphere/dock-mysql.git
> git clone https://github.com/carbonsphere/dock-mysql.git
2 : Build docker image from Dockerfile
Change Directory
cd dock-mysql
Build Image
sudo docker build -t #YOUR_IMAGE_NAME# .
ex: sudo docker build -t youraccount/dock-mysql .
3 : Run image
> sudo docker run -d -P youraccount/dock-mysql
4 : Run image
> sudo docker run -d -P --name db youraccount/dock-mysql
docker_daemon_ip can be found using "boot2docker ip" or you can check your environment variable "echo $DOCKER_HOST" image_port can be found using "docker port db"
This is an automatic MySQL replication container. It automatically chains linked containers as you start it.
Start first MySQL container and name it "mysql".
docker run -d --name mysql -p 3306:3306 carbonsphere/dock-mysql
Obtain remote & slave keys in logs
docker logs mysql
Log Example:
------------
Default password detected. Generating new slave account password
Default remote user password detected. Generating new remote account password
New Remote password = aaaaaaaaa
Slave account password = bbbbbbbb8da6092db237
Starting mysqld: [ OK ]
Setting mysql slave account password
Start second MySQL Container and create link to first container
docker run -d --name mysql2 -p 3307:3306 -e MYSQL_ID=2 -e MYSQL_MASTER_HOST="db" -e MYSQL_MASTER_PASS="bbbbbbbb8da6092db237" --link mysql:db carbonsphere/dock-mysql
Required Environment variables:
-------------------------------
MYSQL_ID - Server ID (all servers must have different id)
MYSQL_MASTER_HOST - Server IP or linked name
MYSQL_MASTER_USER - (Optional) default 'carbonSlave'
MYSQL_MASTER_PASS - Slave account password from first container
Note: If you would like to create more replication container, you must obtain "mysql2" slave account password for the thrid container.
4. Check slave server (mysql2) status.
> mysql> show slave status;
If no error is present, then it is synced up with first container.
5. For creating round robin replication or Master-Master Replication.
Run the following mysql command on first (mysql) container.
mysql> slave stop;
mysql> CHANGE MASTER TO MASTER_HOST='mysql2_ip',MASTER_USER='mysql2_slave_user',MASTER_PASSWORD='mysql2_slave_password';
mysql> slave start;
mysql> show slave status;
If no errors are present, then it is setup properly.
For security consideration - Default remote and slave accounts will now have a randomly generated passwords on container start. Passwords can be obtained by using "docker logs" command.
Added local container test script which will spawn 5 (default) mysql containers (mysql1~mysql5) and link them together to form a daisy chain. The test script will then create 1 DB in each container and display all container's database at the end. If containers are linked properly, then all 5 DB should have the same databases.
Content type
Image
Digest
sha256:994c8c911…
Size
155.4 MB
Last updated
about 9 years ago
docker pull carbonsphere/dock-mysql