写博客是为了和过去以及未来的自己对话
“对任何渴望进步的人来说,写博客/文章/回答对自己的成长帮助都是巨大的。坚持写作的那一刻起,就已经开始受益。”

一般的MySQL镜像都是基于Ubuntu镜像构筑的,如果想基于CentOS镜像构筑一个MySQL服务,就需要手动在CentOS镜像之上,创建MySQL服务了,本来以为只是单纯的在CentOS里面安装和启动一个Mysql服务,结果还是想的简单了,构筑中途遇到不少问题,本篇博文详细记载,在CentOS镜像下构筑MySQL服务的手顺。

1.从官方仓库获取CentOS7的镜像

docker pull centos:centos7.9.2009

2.启动容器并进入容器内部

docker run -itd --name centos-mysql --privileged=true centos:centos7.9.2009 /usr/sbin/init
docker exec -it centos-mysql /bin/bash

3.下载并安装mysql官方yum源

yum install wget
wget https://dev.mysql.com/get/mysql80-community-release-el7-11.noarch.rpm
yum localinstall mysql80-community-release-el7-11.noarch.rpm
# 禁用8.0
yum-config-manager --disable mysql80-community
# 启用5.7.44
yum-config-manager --enable mysql57-community
# 或者以下方式
# wget https://repo.mysql.com/mysql57-community-release-el7-10.noarch.rpm
# yum localinstall mysql57-community-release-el7-10.noarch.rpm
# rpm --import https://repo.mysql.com/RPM-GPG-KEY-mysql-2022

4.安装MySQL软件包

yum -y install mysql-community-server
这里需要等待几分钟,安装相关的依赖包和MySQL软件包

5.初始化mysql服务并启动

mysqld --initialize --explicit_defaults_for_timestamp --user=mysql --datadir=/var/lib/mysql
systemctl start mysqld
报错并提示 --initialize specified but the data directory has files in it. Aborting,则删除并重建/var/lib/mysql 目录后即可。

6.至此CentOS7镜像下的MySQL安装和启动成功。

7.查看启动服务时的临时密码,并修改临时密码

[root@f2c7a9709094 /]# grep "password" /var/log/mysqld.log
2024-04-30T14:31:02.568994Z 1 [Note] A temporary password is generated for root@localhost: E&qNe!Z7N!f#

mysql -uroot -p
ALTER USER 'root'@'localhost' IDENTIFIED BY '1qaz2wsx';

8.提交对容器的修改生成新的镜像

docker commit -m="install mysql5.7" --author="shixiaobin" centos-mysql centos7-mysql5.7

 

posted on 2024-04-30 01:44  sxb_sunday  阅读(7)  评论(0编辑  收藏  举报