上一篇提到了docker安装mysql5.7和mysql8有所不同,这一篇说一下mysql8的安装
1、宿主机创建映射目录
            
            
              bash
              
              
            
          
          mkdir -p /data/mysql8/log
mkdir -p /data/mysql8/data
mkdir -p /data/mysql8/conf
        这里我放在了/data/mysql8目录下
2、拉取mysql镜像
            
            
              bash
              
              
            
          
          docker pull mysql:8.0.21
        查看镜像
            
            
              bash
              
              
            
          
          docker images
        
3、创建运行实例
            
            
              bash
              
              
            
          
          docker run -p 13306:3306 --name mysql8 \
-v /data/mysql8/log:/var/log/mysql \
-v /data/mysql8/data:/var/lib/mysql \
-v /data/mysql8/conf:/etc/mysql \
--privileged=true \
-d mysql:8.0.21
        参数说明:
- -p 13306:3306 将容器的3306端口映射到主机的13306端口
 - -v /mysql/mysql8/conf:/etc/mysql 将配置文件夹挂载到主机
 - -v /mysql/mysql8/log:/var/log/mysql 将日志文件夹挂载到主机
 - -v /mysql/mysql8/data:/var/lib/mysql 将数据文件夹挂载到主机
 
4、查看运行容器
            
            
              bash
              
              
            
          
          docker ps
        
5、设置密码
一般此时容器就可以顺利启动起来了,但是和mysql5.7不同的是,这次启动容器没有设置密码,因为多次试验后,即使使用了-e MYSQL_ROOT_PASSWORD='123456'也不会生效,需要进入容器内部设置初始化密码,有使用compose或者swarm部署的,可以参考下一章集群部署
执行
            
            
              bash
              
              
            
          
          docker exec -it mysql8 bash
        进入容器内部
执行
            
            
              bash
              
              
            
          
          mysqladmin -u root password '123456'
        另外设置完密码后,此时的root用户只能localhost访问,有需要远程访问的小伙伴可以继续执行
            
            
              bash
              
              
            
          
          mysql -uroot -p
# 这里输入刚刚设置的密码
update user set host = '%' where user = 'root';
flush privileges;
        执行完后执行exit退出数据库客户端,退出容器,本地连接测试即可。