CentOS 7 使用Docker搭建Mysql

 

1. 前提是Docker已经安装好了

没有安装的可以看这篇文章-->CentOS 7安装Docker

2.拉取mysql镜像

docker pull mysql
docker images

 可以看到我们拉取的镜像

[root@bogon ~]# docker images
REPOSITORY                  TAG                 IMAGE ID            CREATED             SIZE
mynginx                     latest              1964089d63e6        11 days ago         108 MB
docker.io/mysql             5.7                 98455b9624a9        2 weeks ago         372 MB
docker.io/jenkins/jenkins   lts                 806f56c84444        8 weeks ago         703 MB
docker.io/tomcat            latest              168588387c68        2 months ago        463 MB
docker.io/redis             latest              0f55cf3661e9        2 months ago        95 MB
docker.io/nginx             latest              f09fe80eb0e7        2 months ago        109 MB
docker.io/mysql             latest              81f094a7e4cc        2 months ago        477 MB
docker.io/zookeeper         latest              06b178591ab3        2 months ago        150 MB
docker.io/php               5.6-fpm             3458979c7744        2 months ago        344 MB
View Code

 宿主机创建几个文件夹用于容器文件挂载

mkdir -p /home/service/mysql/data
mkdir -p /home/service/mysql/conf/my.cnf

然后运行命令启动mysql

docker run -p 3306:3306 --name mysql \
-v /home/service/mysql/data:/var/lib/mysql \
-v /home/service/mysql/conf/my.cnf:/etc/my.cnf \
-e MYSQL_ROOT_PASSWORD=123456\
-e TZ=Asia/Shanghai \
-d mysql
docker run -p 3306:3306 --name mysql -v /home/service/mysql/logs:/logs -v /home/service/mysql/data:/mysql_data -e MYSQL_ROOT_PASSWORD=123456 -d mysql


命令讲解

> -p 3306:3306:将容器的3306端口映射到主机的3306端口
> -e MYSQL_ROOT_PASSWORD=123456:初始化root用户的密码
> -e TZ=Asia/Shanghai 修改容器默认时区为上海 
> -v =/mysqltest/config/my.cnf:/etc/my.cnf:映射配置文件
> -v =/mysqltest/data:/var/lib/mysql:映射数据目录


注意:不同mysql版本可能配置文件目录和路径不一样,mysql5.7的容器路径为 /etc/mysql/mysql.conf.d/mysqld.cnf。
进入容器

docker exec -it mysql bash

 登陆mysql

mysql -uroot -p

 创建mysql用户

CREATE USER 'admin'@'%' IDENTIFIED BY '123456';
GRANT ALL ON *.* TO 'admin'@'%';
flush privileges;

然后就可以使用admin用户登陆了,因为mysql8与mysql5.7授权有一些不一样,mysql必须先创建用户才能授权,不然会出错。

posted @ 2019-04-15 11:59  roes  阅读(652)  评论(0编辑  收藏  举报