简介
随着Kubernetes(k8s)在企业中的普及,越来越多的应用、组件需要docker化,甚至一切皆可docker。数据库mysql,相信对于研发人员来说都不陌生,特别是后台应用,mysql更是基石,因此本文将为大家简单介绍mysql的容器化安装。
环境介绍:
macOS10.14.4
docker desktop 3.1.0
mysql 8.0
步骤
docker环境的安装这里就不介绍了,百度一下你就知道。这里假设你已经安装的docker环境。下面我们就开始:
1. 从镜像仓库查询mysql镜像
docker search mysql
2. 从镜像仓库拉取镜像
docker pull mysql:8.0
这里获取的是mysql8.0版本,当然用户也可以通过以下命令获取最新的版本。
docker pull mysql
下载完之后我们可以通过以下命令查看mysql镜像
docker images
3. 创建容器,启动mysql
docker run -p 3307:3306 --name mysql8.0 \
-e MYSQL_ROOT_PASSWORD=123456 -d mysql:8.0;
执行完命令之后会返回一个容器id
创建完成之后我们通过以下命令来查看容器状态,可以看到容器已经启动。
docker ps -a
这个时候如果我们直接使用navicate连接数据会有如下错误:
由于Mysql5.6以上的版本修改了Password算法,这里需要更新密码算法,便于使用Navicat连接,因此我们需要进入容器修改mysql配置。
4. 进入容器
docker exec -it mysql8.0 bash
5. 连接mysql
mysql -uroot -p
6. 更改mysql配置
ALTER user 'root'@'%' IDENTIFIED WITH mysql_native_password BY '123456' PASSWORD EXPIRE NEVER;
FLUSH PRIVILEGES;
执行完上述步骤,再次尝试连接。
至此简易版的mysql容器化部署就完成了。
思考
目前我们构建的mysql可以在本地环境开发使用,但是还不能用户测试或者生产,因为对于后台应用数据库至关重要,存储的数据一旦丢失,将是致命的。因此我们需要考虑以下几个问题:
数据持久化
集群环境下数据同步
容器在节点间移动。
在后续的章节中我们会逐个解决上述问题,敬请期待。