目前有关MySQL的Docker镜像大多是基于Ubuntu构建的,如果想把MySQL安装在CentOS上,那么只有自己动手来构建基于CentOS的MySQL镜像了。
下载centos7镜像
docker pull daocloud.io/centos:latest
运行centos7容器
docker run -dit --privileged --name=centos7 daocloud.io/centos:latest /usr/sbin/init
进入centos容器交互界面
docker exec -it centos7 /bin/bash
安装wget
yum install -y wget
安装MySQL官方的 Yum Repository
wget -i -c http://dev.mysql.com/get/mysql57-community-release-el7-10.noarch.rpm
yum -y install mysql57-community-release-el7-10.noarch.rpm
安装MySQL5.7
yum install -y mysql-server
启动MySQL
systemctl start mysqld.service
查看MySQL运行状态
systemctl status mysqld.service
查看初始root密码
grep "password" /var/log/mysqld.log
修改root密码
获得初始密码后,第一件事就是要重新设置root密码,否则什么事情也做不了,因为MySQL强制要求必须重新设置root密码。
进入mysql数据库
mysql -uroot -p
修改root密码
ALTER USER 'root'@'localhost' IDENTIFIED BY '123456';
密码设置过于简单,会报错,要求是必须含有数字,小写或大写字母,特殊字符:
如果是安装用于测试,不需要设置太复杂的密码,则需要设置:
修改validate_password_policy参数的值
mysql> set global validate_password_policy=0;
修改validate_password_length参数的值
set global validate_password_length=1;
设置后,重新设置root密码就不会提示密码安全不符合要求的提示了。
开启远程访问
默认安装后,MySQL禁止远程连接,所以需要打开该权限。
mysql> GRANT ALL ON *.* TO root@'%' IDENTIFIED BY '123456' WITH GRANT OPTION;
mysql> FLUSH PRIVILEGES;
查看MySQL版本
mysql> select version();
构建新镜像
将安装好MySQL5.7的容器打包为新的镜像,便于以后使用:
docker commit -a "dedemao" -m "my mysql" centos7 dedemao/mysql
-a :提交的镜像作者;
-c :使用Dockerfile指令来创建镜像;
-m :提交时的说明文字;
-p :在commit时,将容器暂停。
构建新容器
docker run -dit --privileged -p 3310:3306 --name=mysql3310 dedemao/mysql /usr/sbin/init