制作基于centos7的mysql的docker镜像

来源:互联网 发布:淘宝卖苹果生产许可证 编辑:程序博客网 时间:2024/04/29 14:49

redhat从7开始,系统默认自带的数据库不在是mysql,而是mysql另外的一个分支叫mariadb。

由于mariadb刚刚受到推崇,大家都还不太习惯,都还是倾向于使用mysql。

公司的开发环境使用docker来部署服务,docker镜像是centos7的系统(可以说跟rhel7一样),于是试着做一个centos7的mysql镜像。


cenos7的docker镜像只有操作系统最基本的功能,大小只有二百多兆。有很多渠道可以获取,这里就不多说,下面只说一下需要注意的几点。

---
安装过程中需要注意的几点:
a) 安装时需要perl的依赖包(perl-DBD-MySQL perl-Time-HiRes等),依赖的perl包不装的话会报错;
b) 然后安装MySQL-shared-XXXX MySQL-client-XXXX MySQL-server-XXXX这3个包就可以安装mysql(XXXX为版本号,此次使用的rpm报的版本号为5.6.28);
c) 安装之后,mysql的root密码是被默认设置了,初始密码记录在:/root/.mysql_secret
d) 通过/etc/init.d/mysql start 启动mysql之后,使用 mysqladmin -u root -p password 123456 将root密码设为了123456
e) mysql授权所有库的所有权限给所有主机:mysql -uroot -p123456 -e "GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '123456';"

本次制作的centos7的mysql镜像名为:
centos-base-sshd-mysql:latest

运行示例如下:
docker run -d -p 3322:22 -p 3309:3306 centos-base-sshd-mysql

可从宿主机上使用如下命令测试mysql是否正常运行了:
mysql -h 127.0.0.1 -P 3309 -uroot -p123456 -e "show databases;"
如果能显示出databases的信息,说明mysql正常运行了


注:需要挂载mysql外接数据目录的话,在运行容器的时候使用类似于 -v /var/lib/mysql:/var/lib/mysql去指定
另外,在挂载外接目录的时候,需要注意挂载目录的所有者属性,必须要符合容器中mysql账号的属性;否则会报权限错误
比如,这个mysql的容器运行后的mysql用户的uid和gid是999和998,则需要把宿主上要挂载的目录所有者属性也改成999:998再挂载运行容器
chown 999:998 /host/mysql_data/ -R



1 0
原创粉丝点击