docker创建mysql容器,指定版本5.7

1、安装Docker

保证yum最新,执行命令,下载docker。安装参考:菜鸟教程

$ sudo yum -y install docker-io

启动 Docker 后台服务

$ sudo service docker start

查询一下mysql的镜像

$ sudo docker search mysql

下载镜像,选择的第一个

$ sudo docker pull docker.io/mysql:5.7.18

2、设置Mysql

设置外挂目录

mysql的外置data目录为 /opt/mysql_data_docker/data/mysql/data.
mysql的配置文件为 /opt/mysql_data_docker/data/mysql/conf/my.cnf

设置挂载本地路径,mysql的data要放到docker容器的外面。这样数据存在硬盘上,备份切换只需要备份文件夹即可

$ sudo mkdir -p /opt/mysql_data_docker/data/mysql/logs /opt/mysql_data_docker/data/mysql/conf /opt/mysql_data_docker/data/mysql/data

创建my.cnf文件,替换掉 镜像中默认的my.cnf, 添加 lower_case_table_names=1 ,使得mysql大小写不敏感

$ cd /opt/mysql_data_docker/data/mysql/conf
$ vi my.cnf

# 删除所有内容,并输入如下内容,适用mysql5.7.18版本
!includedir /etc/mysql/conf.d/
!includedir /etc/mysql/mysql.conf.d/
[mysql]
default-character-set = utf8
[mysql.server]
default-character-set = utf8
[mysqld_safe]
default-character-set = utf8
[client]
default-character-set = utf8
[mysqld]
lower_case_table_names=1
character_set_server=utf8
skip-name-resolve
init_connect='SET NAMES utf8'

创建mysql的容器,并映射 本地端口3306 访问容器的3306 。

如果是运维,只需要执行此步骤,修改name即可创建新的mysql容器

$ sudo docker run --name mysql_new -p 3306:3306 -v /opt/mysql_data_docker/data/mysql/data:/var/lib/mysql -v  /opt/mysql_data_docker/data/mysql/conf/my.cnf:/etc/mysql/my.cnf  -e MYSQL_ROOT_PASSWORD=1234 -d docker.io/mysql:5.7.18

查看运行的容器,具体可查看docker的命令。

$ sudo docker ps

进入容器,(相当于进入运行的虚拟机中)-it 后面跟id 上图中 2052181c9e17 就是id,这里用简写20即可

$ sudo docker exec -it 20 /bin/bash

3、进入mysql

### 创建数据库
$ mysql -uroot -p1234
$ CREATE DATABASE dbname

### 使用数据库
$ use dbname;

4、问题:

1、为啥要映射配置文件?

容器内 改变 配置文件,重启后,会还原,他只是一个容器,你不能改变容器内的东西。所以需要映射进去。

2、为啥要把 数据库的文件 映射到 服务器上?

一样的原因,重启会还原。所以要把保存的数据放到 不还原的地方。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容