Docker容器可以为应用创建一个独立的镜像,当然Mysql也是可以的
由于Docker容器内部文件系统与外部非直接关联因此在Mysql安装以及启动过程中需要建立文件系统目录映射
查找Mysql镜像
dockersearchmysql
上图可见已存在的有很多mysql镜像,当然你也可以检索mysql5.7固定版本的docker镜像,这里我们暂时使用默认镜像
拉取MySql镜像
dockerpullmysql
等待镜像拉取完成
查看已存在镜像
dockerimages
上图中可看出已存在三个镜像其中第一个为我们拉取的Mysql镜像
注:笔者拉取镜像之前此镜像已经存在,因此创建时间显示初次拉取时间,仅供参考不影响操作
创建MySql容器映射目录
拉取完镜像之后并不能直接使用,还需要在本机创建一个容器并启动来使用
上面说到容器内文件系统和外部文件系统并非直接关联,因此我们需要创建一些映射文件目录(非必要操作建议创建映射)
以下目录本人测试使用(MAC),真实映射目录视文件系统而定
Linux生产环境建议/root/mysql
mkdir/Users/zl/mysql/data
映射mysql数据库文件夹
mkdir/Users/zl/mysql/logs
映射mysql日志文件夹
mkdir/Users/zl/mysql/conf
映射mysql配置文件夹
一键创建命令
本人测试
mkdir-p/Users/zl/mysql/data/Users/zl/mysql/logs/Users/zl/mysql/conf
Linux
mkdir-p/root/mysql/data/root/mysql/logs/root/mysql/conf
创建配置文件
此处目录为创建好的配置文件映射目录
cd/Users/zl/mysql/conf
创建配置文件,名称随意,扩展名为cnf
touchmysql.cnf
创建容器并启动
dockerrun-p:--namedockermysql-v/Users/zl/mysql/conf:/etc/mysql/conf.d-v/Users/zl/mysql/logs:/logs-v/Users/zl/mysql/data:/var/lib/mysql-eMYSQL_ROOT_PASSWORD=abcde-dmysql
命令解析
dockerrun
创建一个新的容器并运行一个命令
-p:
建立容器与主机端口映射
--namedockermysql
设置容器名称,后期启动可直接使用名称启动
-v/Users/zl/mysql/conf:/etc/mysql/conf.d
-v/Users/zl/mysql/logs:/logs
-v/Users/zl/mysql/data:/var/lib/mysql
建立容器与主机文件系统目录映射
-eMYSQL_ROOT_PASSWORD=abcde
设置密码的环境变量此环境变量被用于mysqlroot用户链接密码
-e用于设置环境变量
-d表示容器后台运行仅返回容器ID
最后的mysql为镜像名称
查看镜像启动状态以及目录映射结果
dockerps
ls/Users/zl/mysql/data
目录为之前设置的mysql数据文件目录
上图可见mysql容器创建成功并启动成功
/Users/zl/mysql/data目录下的文件已出现说明数据目录映射成功
-
笔者致力于计算机软件开发并分享学习过程,感谢查阅