一.拉取mysql的镜像
docker pull mysql:8.0
二.查看本地镜像
docker images
三.生成mysql容器
docker run --name mysql-test -d -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 --privileged=true mysql:8.0
–name 指定容器名称
–privilege=true
如果提示ls: cannot access ‘/docker-entrypoint-initdb.d/’: Operation not permitted
原因是CentOS7中的安全模块selinux把权限禁掉了
在运行容器的时候,给容器加特权
MYSQL_ROOT_PASSWORD=123456:设置 MySQL 服务 root 用户的密码
-p 3306:3306 :映射容器服务的 3306 端口到宿主机的 3306 端口,外部主机可以直接通过 宿主机ip:3306 访问到 MySQL 的服务
四.查看MySQL容器
docker ps -a
五.设置mysql可以对外访问
5.1 进入到mysql容器
docker exec -it mysql-test /bin/bash
5.2 登录mysql
mysql -uroot -p
5.3 创建用户并授权
# 创建一个账号-admin,用来进行远程访问;
CREATE USER 'nacos'@'%' IDENTIFIED BY '123456';
# 赋予所有权限给之前创建的账号:admin
GRANT ALL ON *.* TO 'nacos'@'%';
#如果你安装的是8.0以上的版本需要修改加密规则,否则客户端可能连不上
ALTER USER 'nacos'@'%' IDENTIFIED WITH mysql_native_password BY '123456';
# 刷新权限
FLUSH PRIVILEGES;
六.外部连接mysql
以上mysql就安装成功了
七 查看容器中mysql的表目录
先登录mysql,然后输入下面的命令
show variables like 'datadir';