Docker mysql

一、数据存储在本地

Docker MySQL 把数据存储在本地目录,很简单,只需要映射本地目录到容器即可

1、加上-v参数

docker run -d -e MYSQL_ROOT_PASSWORD=admin --name=mysql -v /data/mysql/data:/var/lib/mysql -p 3306:3306 mysql

上面中也可以不用指定-p,这样需要用 --net=host命令,这样的话,物理机的ip+容器里面的端口号也可以访问docker里面的程序,前提是容器里面的这个端口宿主机没有占用。

这样,宿主机的端口和docker 容器里面的端口将自动会映射。如:

docker run -d -e MYSQL_ROOT_PASSWORD=root --name=mysql_mir1.0 --net=host  mysql

2、还可以指定配置文件

docker run -d -e MYSQL_ROOT_PASSWORD=admin --name mysql -v /data/mysql/my.cnf:/etc/mysql/my.cnf -v /data/mysql/data:/var/lib/mysql -p 3306:3306 mysql

这样,即可修改配置文件,还能把数据存在本地目录,一举两得,-v 参数可以多次使用,每次映射一个目录,通过这种方式,很容易进行配置。

3、如果允许外部机器访问docker 里面的mysql还要在mysql里面授权。

grant all on *.* to root@'%' identified by 'huacloud'(如果docker run的时候用了--net=host则不用);

原文地址:https://www.cnblogs.com/boshen-hzb/p/6380629.html