使用docker安装mysql数据库需要注意的是,通常我们要把数据库的数据文件挂载到我们的外部Centos主机上,防止数据丢失。
安装步骤
第一步 拉取镜像
docker pull mysql:5.7
安装与挂载目录
第一步安装完成以后,使用docker images
命令来确认一下我们拉取的镜像对不对,下面是我的镜像情况,可见拉取成功:
接下来使用下面的命令就可以安装了:
docker run -p 3306:3306 --name mysql \
-v /usr/local/docker_mysql/log:/var/log/mysql \
-v /usr/local/docker_mysql/data:/var/lib/mysql \
-v /usr/local/docker_mysql/conf:/etc/mysql \
-e MYSQL_ROOT_PASSWORD=123456 \
-d mysql:5.7
把这些命令复制到终端,回车,就会创建出一个mysql5.7的容器了。
上面第一行的-p 3306:3306
前一个3306表示的是宿主机的3306端口,后一个表示创建的mysql容器的默认的3306端口,合起来就表示把mysql容器的3306端口映射到宿主机的3306端口,这样一来,我们就可以通过外部的3306端口访问到mysql容器了。
上面的第二三四行都表示文件目录挂载,冒号前面的目录是宿主机中的目录,冒号后面的是mysql容器内部的目录。冒号前面的目录不用手动创建,这个命令会自动创建。这样以来,我们在外部目录的任何操作都会同步到容器内部对应的文件夹,反之亦然。
上面第五行表示给数据库的root用户设置初始密码
上面第六行的-d
表示后台运行,mysql:5.7
表示指定使用的镜像。也就是我们刚才拉取下来的镜像。
接下来还要对mysql进行一些配置,我们的配置文件就可以直接放在我们上面制定的外部挂载目录下面了,也就是/usr/local/docker_mysql/conf
这个目录。
vi /usr/local/docker_mysql/conf/my.cnf
拷贝下面的代码到my.cnf
这个文件:
[client]
default-character-set=utf8
[mysql]
default-character-set=utf8
[mysqld]
init_connect='SET collation_connection=utf8_unicode_ci'
init_connect='SET NAMES utf8'
character-set-server=utf8
collation-server=utf8_unicode_ci
skip-character-set-client-handshake
skip-name-resolve
保存退出后,执行docker restart mysql
就可以完成配置。
文章评论