1 前言
Docker容器原则上是短暂的,如果容器被删除或损毁,数据或配置将丢失,所以上个章节部署的MySQL只适合于测试环境,由于生产的需求,本章将使用Docker卷机制持久保存Docker容器中创建的数据。
2 最佳实践
2.1 环境配置
2.1.1 系统环境配置
IP Address = 10.168.0.71
Host Name = any
OS = CentOS 7.6 x86_64
2.1.2 软件环境配置
2.2 非持久化方式启动MySQL
2.2.1 下载MySQL服务器Docker镜像
docker pull mysql/mysql-server:5.6
其他版本的下载,请使用以下命令,
docker pull mysql/mysql-server:5.5
docker pull mysql/mysql-server:5.6
docker pull mysql/mysql-server:5.7
docker pull mysql/mysql-server:8.0
docker pull mysql/mysql-server:latest
下载完毕后,你可以使用以下命令查看当前下载的镜像,
docker images
可见如下显示,
REPOSITORY TAG IMAGE ID CREATED SIZE
mysql/mysql-server 5.6 8fe1c25ccc38 6 weeks ago 218MB
2.2.2 初始化一个非持久化实例
docker run --name mysql1 -d mysql/mysql-server:5.6 --character-set-server=utf8 --collation-server=utf8_general_ci
启动实力后,可见如下显示,
87cb7f2615ff3f762332eb826566a566888e7ade0ecf5fe55cc4c462d7f2e9da
可使用如下命令查看正在运行的容器,
docker ps
可见如下显示,
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
18682cd5edea mysql/mysql-server:5.6 "/entrypoint.sh mysq…" About a minute ago Up About a minute (healthy) 3306/tcp mysql1
2.2.3 检查MySQL启动的log
docker logs mysql1
2.2.4 获取初始化密码
docker logs mysql1 2>&1 | grep -i "GENERATED ROOT PASSWORD:"
可见如下输出,
Entrypoint] GENE