一、数据存储在本地
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则不用);