Run multiple version of MySQL container
on the same virtual host:
Find out the
tag for MySQL version:
Visit https://hub.docker.com/r/mysql/mysql-server/
and find out the tag for appropriate
version
For example for
MySQL release 8, tags are - 8.0.18, 8.0, 8, latest
MySQL release
5.7, tags are - 5.7.28, 5.7, 5
MySQL release
5.6, tags are - 5.6.46, 5.6
Pull the image
from Docker Hub:
For MySQL 8.0.16 Community edition Docker image
execute following command
# docker pull
mysql/mysql-server:8.0.16
For MySQL 5.7 Community edition Docker image
execute following command
# docker pull
mysql/mysql-server:5.7.25
For MySQL
latest:
# docker pull
mysql/mysql-server:latest
REPOSITORY TAG IMAGE ID CREATED SIZE
mysql/mysql-server 8.0.16 39649194a7e7 8 months ago 289MB
mysql/mysql-server 5.7.25 0dc21157ff24 10 months ago 244MB
mysql/mysql-server 8.0.18 b172b40598f0 2 months ago 350MB mysql/mysql-server latest b172b40598f0 2 months ago 350MB
mysql/mysql-server 5.7.25 0dc21157ff24 10 months ago 244MB
mysql/mysql-server 8.0.18 b172b40598f0 2 months ago 350MB mysql/mysql-server latest b172b40598f0 2 months ago 350MB
Run Docker container for MySQL 5.7.25:
# docker run
--name=mysql_5.7.25 -d
mysql/mysql-server:5.7.25
Run Docker container for MySQL 8.0.18:
# docker run
--name=mysql_8.0.18_1 -d
mysql/mysql-server:8.0.18
CONTAINER
ID IMAGE COMMAND CREATED STATUS PORTS NAMES
bf087eca6842 mysql/mysql-server:5.7.25 "/entrypoint.sh mysq…" 3 seconds ago Up 3 seconds (health: starting) 3306/tcp, 33060/tcp mysql_5.7.25
370f5c56cd1a mysql/mysql-server:8.0.18 "/entrypoint.sh mysq…" 3 seconds ago Up 3 seconds (health: starting) 3306/tcp, 33060/tcp mysql_8.0.18_1
Common commands use for MySQL running in
container
Find Docker
Version:
# docker –v
# docker –v
Get root password
generated:
# docker logs <container_name> 2>&1 | grep
GENERATED
# docker logs mysql_2 2>&1 | grep GENERATED
List Docker
Container:
# docker ps –a
# docker ps –a
Fetch MySQL logs:
# docker logs <container_name> 2>&1 | grep GENERATED
# docker logs <container_name> 2>&1 | grep GENERATED
Connect MySQL:
#docker exec -it <container_name> mysql -uroot -p
#docker exec -it <container_name> mysql -uroot -p
Connect MySQL file
system in Docker:
#docker exec -it <container_name> bash
#docker exec -it <container_name> bash
Backup MySQL
databases using mysqldump:
# docker exec [MYSQL_CONTAINER] /usr/bin/mysqldump \
-u [MYSQL_USER] --password=[MYSQL_PASSWORD] \
--all-databases > backup.sql
# docker exec [MYSQL_CONTAINER] /usr/bin/mysqldump \
-u [MYSQL_USER] --password=[MYSQL_PASSWORD] \
--all-databases > backup.sql
Restore MySQL
databases:
# cat backup.sql | docker exec -i [MYSQL_CONTAINER] /usr/bin/mysql -u [MYSQL_USER] --password=[MYSQL_PASSWORD] [MYSQL_DATABASE]
# cat backup.sql | docker exec -i [MYSQL_CONTAINER] /usr/bin/mysql -u [MYSQL_USER] --password=[MYSQL_PASSWORD] [MYSQL_DATABASE]
Note: Percona
xtrabackup is supported only for Percona Xtrabackup image.
Comments
Post a Comment