MySQL 镜像的配置文件好像换位置了,贴个自己的记录。
1. 本地部署
#拉取镜像
docker pull mysql:8.0.20
#启动镜像,用于拷贝配置文件到宿主机
docker run -p 3306:3306 --name mysql -e MYSQL_ROOT_PASSWORD=123456 -d mysql:8.0.20
#查看是否启动成功
docker ps -a
#新建挂载目录并拷贝配置文件
mkdir -p /mysqldata/
docker cp mysql:/etc/mysql /mysqldata/
#删除原有镜像
docker stop mysql
docker rm -f mysql
#启动mysql ,挂载配置文件,数据持久化到宿主主机
docker run \
-p 3306:3306 \
--name mysql \
--privileged=true \
--restart unless-stopped \
-v /mysqldata/mysql/log:/var/log/mysql \
-v /mysqldata/mysql/data:/var/lib/mysql \
-v /mysqldata/mysql/my.cnf:/etc/mysql/my.cnf \
-v /mysqldata/mysql/conf.d:/etc/mysql/conf.d \
-v /etc/localtime:/etc/localtime \
-e MYSQL_ROOT_PASSWORD=123456 \
-d mysql:8.0.20
#检查是否运行成功
docker ps -a
2. 授权远程访问
#进入容器
docker exec -it mysql bash
#登录mysql,输入运行容器时配置的密码
mysql -u root -p
#执行sql 授权远程登录
CREATE USER 'amove'@'%' IDENTIFIED WITH mysql_native_password BY '123456';
GRANT ALL PRIVILEGES ON *.* TO 'amove'@'%';
#刷新权限
flush privileges;