1,docker下载与安装:
https://mp.csdn.net/postedit/81356403
2,mysql镜像选择:
https://hub.docker.com/explore/ 中查找具体要安装的版本。
3,镜像下载
docker pull mysql:5.6.41
4,启动一个实例
docker run --name some-mysql -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.6.41 #启动一个指定root密码的实例
5,其他容器连接到mysql容器实例
docker run --name some-app --link some-mysql:mysql -d application-that-uses-mysql #some-mysql:要连接的mysql容器的名称。mysql:连接的别名。
6,mysql容器作为客户端连接到容器或其他实例:
连接容器:
$ docker run -it --link some-mysql:mysql --rm mysql:5.6.41 sh -c 'exec mysql -h"172.17.0.9" -P"3306" -uroot -p"123456"' #查看容器ip方法:docker inspect some-mysql |grep '"IPAddress"'
连接其他实例:
docker run -it --rm mysql:5.6.41 mysql -h127.0.0.1 -uroot -p
7,在容器内执行shell和查看容器日志
$ docker exec -it some-mysql bash
$ docker logs some-mysql
8,默认配置文件位置:
/etc/mysql/my.cnf
指定本地配置文件:
docker run --name some-mysql -v /my/custom:/etc/mysql/conf.d -e MYSQL_ROOT_PASSWORD=my-secret-pw -d mysql:tag #注意,挂载的是配置文件所在文件夹路径
9,查看mysql可以指定的参数:
docker run -it --rm mysql:tag --verbose --help #如:-e MYSQL_ROOT_PASSWORD=my-secret-pw 的参数
10,指定数据文件目录:
$ docker run --name some-mysql -v /my/own/datadir:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=my-secret-pw -d mysql:tag
11,如果数据库目录已经存在文件,则$MYSQL_ROOT_PASSWORD参数无效,就是说不会反复设置root密码。
12,数据备份,命令可用,但更复杂,推荐同容器运行:
$ docker exec some-mysql sh -c 'exec mysqldump --all-databases -uroot -p"$MYSQL_ROOT_PASSWORD"' > /some/path/on/your/host/all-databases.sql