#拉取镜像
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 /home/mysqldata/
docker cp  mysql:/etc/mysql /home/mysqldata/

#删除原有镜像
docker stop mysql
docker rm -f mysql
#启动mysql ,挂载配置文件,数据持久化到宿主主机
docker run \
-p 3307:3306 \
--name mysql8 \
--privileged=true \
--restart unless-stopped \
-v /home/mysqldata/mysql:/etc/mysql \
-v /home/mysqldata/mysql/logs:/logs \
-v /home/mysqldata/mysql/data:/var/lib/mysql \
-v /etc/localtime:/etc/localtime \
-e MYSQL_ROOT_PASSWORD=xxxxxxx \
-d mysql:8.0.20

#检查是否运行成功
docker ps -a
#防火墙
firewall-cmd --add-port=3307/tcp --permanent
firewall-cmd --reload 

# 进入容器内部
docker exec -it mysql bash
# mysql -uroot -p

#mysql8开通远程地址访问
https://blog.csdn.net/z15711187787/article/details/124986309

# 重启docker
docker restat xxxxx