1、应用场景
可以将生产环境的数据库数据导到测试环境。
2、安装mysql
2.1 查找mysql镜像
>docker search mysql
INDEX NAME DESCRIPTION STARS OFFICIAL AUTOMATED
docker.io docker.io/mysql MySQL is a widely used, open-source relati... 7915 [OK]
docker.io docker.io/mariadb MariaDB is a community-developed fork of M... 2641 [OK]
docker.io docker.io/mysql/mysql-server Optimized MySQL Server Docker images. Crea... 597 [OK]
docker.io docker.io/percona Percona Server is a fork of the MySQL rela... 420 [OK]
docker.io docker.io/zabbix/zabbix-server-mysql Zabbix Server with MySQL database support 174 [OK]
docker.io docker.io/hypriot/rpi-mysql RPi-compatible Docker Image with Mysql 111
docker.io docker.io/zabbix/zabbix-web-nginx-mysql Zabbix frontend based on Nginx web-server ... 91 [OK]
docker.io docker.io/centurylink/mysql Image containing mysql. Optimized to be li... 60 [OK]
docker.io docker.io/1and1internet/ubuntu-16-nginx-php-phpmyadmin-mysql-5 ubuntu-16-nginx-php-phpmyadmin-mysql-5 49 [OK]
docker.io docker.io/centos/mysql-57-centos7 MySQL 5.7 SQL database server 48
docker.io docker.io/mysql/mysql-cluster Experimental MySQL Cluster Docker images. ... 41
docker.io docker.io/tutum/mysql Base docker image to run a MySQL database ... 31
docker.io docker.io/bitnami/mysql Bitnami MySQL Docker Image 25 [OK]
docker.io docker.io/schickling/mysql-backup-s3 Backup MySQL to S3 (supports periodic back... 25 [OK]
docker.io docker.io/zabbix/zabbix-web-apache-mysql Zabbix frontend based on Apache web-server... 24 [OK]
docker.io docker.io/linuxserver/mysql A Mysql container, brought to you by Linux... 20
docker.io docker.io/zabbix/zabbix-proxy-mysql Zabbix proxy with MySQL database support 20 [OK]
docker.io docker.io/centos/mysql-56-centos7 MySQL 5.6 SQL database server 13
docker.io docker.io/circleci/mysql MySQL is a widely used, open-source relati... 11
docker.io docker.io/mysql/mysql-router MySQL Router provides transparent routing ... 8
docker.io docker.io/openshift/mysql-55-centos7 DEPRECATED: A Centos7 based MySQL v5.5 ima... 6
docker.io docker.io/jelastic/mysql An image of the MySQL database server main... 1
docker.io docker.io/ansibleplaybookbundle/mysql-apb An APB which deploys RHSCL MySQL 0 [OK]
docker.io docker.io/cloudposse/mysql Improved `mysql` service with support for ... 0 [OK]
docker.io docker.io/widdpim/mysql-client Dockerized MySQL Client (5.7) including Cu... 0 [OK]
2.2 拉取mysql5.7镜像
>docker pull mysql:5.7
2.3 查看本地镜像列表
>docker images |grep mysql
docker.io/mysql 5.7 ee7cbd482336 10 days ago 372.1 MB
3、启动mysql
>docker run -p 13306:3306 --name mymysql -v $PWD/conf:/etc/mysql/conf.d -v $PWD/logs:/logs -v $PWD/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7
- -p 13306:3306:将容器的 3306 端口映射到主机的 13306 端口。
- -v $PWD/conf:/etc/mysql/conf.d:将主机当前目录下的 conf/my.cnf 挂载到容器的 /etc/mysql/my.cnf。
- -v $PWD/logs:/logs:将主机当前目录下的 logs 目录挂载到容器的 /logs。
- -v $PWD/data:/var/lib/mysql :将主机当前目录下的data目录挂载到容器的 /var/lib/mysql 。
- -e MYSQL_ROOT_PASSWORD=123456:初始化 root 用户的密码。
$PWD/data中会存入数据库中的数据。
4、数据复制到测试环境
将第3步中的data文件夹复制到测试服务器,在当前目录启动mysql。
>docker run -p 13306:3306 --name mymysql -v $PWD/conf:/etc/mysql/conf.d -v $PWD/logs:/logs -v $PWD/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7
5、其他
5.1 停止mysql
>docker ps #查询容器id
86e4f747393d mymysql:5.7.3 "docker-entrypoint.sh" 32 minutes ago Up 32 minutes 33060/tcp, 0.0.0.0:13306->3306/tcp mymysql
>docker stop 86e4f747393d #停止
>docker rm 86e4f747393d #删除
>docker run -p 13306:3306 --name mymysql -v $PWD/conf:/etc/mysql/conf.d -v $PWD/logs:/logs -v $PWD/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7 #启动
5.2 删除镜像
>docker images #查找本地镜像
mymysql 5.7.1 5858ac4f6191 About an hour ago 372.1 MB
>docker rmi 5858ac4f6191 #删除镜像
注意:先删除容器,才能删除镜像。