当前位置:   article > 正文

centos7 docker 安装mysql,及其配置文件映射_如何将服务器下的docker下的centos下的mysql映射出去

如何将服务器下的docker下的centos下的mysql映射出去

参考文献:

https://blog.csdn.net/Ber_Bai/article/details/116572207

https://www.cnblogs.com/wjw1014/p/12149399.html

https://blog.csdn.net/weixin_43956484/article/details/116499061

  1. 查找mysql镜像

docker search mysql
  1. 下载mysql镜像(:5.7 表示5.7版本)

docker pull mysql:5.7

上图是已经拉取过 拉取第二次的结果。

  1. 宿主机和容器的配置文件设置。

方式一:

先第一次启动

  1. docker run -d \
  2. -p 3306:3306 \
  3. --name mysql \
  4. -e MYSQL_ROOT_PASSWORD=123 \
  5. mysql:5.7
  6. docker exec -it mysql bash
  7. mysql -uroot -p
  8. # Enter password:
  9. # mysql> show variables like '%datadir%';
  10. show variables like '%datadir%';

show variables like '%datadir%';会输出数据文件的存放路径 /var/lib/mysql/

拷贝容器配置文件

docker cp mysql:/etc/mysql /usr/local/mysql/conf

mysql容器的配置文件存在 /etc/mysql 下

docker stop mysql
docker rm mysql

方式二:手动配置容器MySQL数据、配置、日志挂载宿主机目录

  1. # 宿主机创建数据存放目录映射到容器
  2. mkdir -p /usr/local/docker_data/mysql/data
  3. # 宿主机创建配置文件目录映射到容器
  4. mkdir -p /usr/local/docker_data/mysql/conf #(需要在此目录下创建"conf.d""mysql.conf.d"两个目录)
  5. mkdir -p /usr/local/docker_data/mysql/conf/conf.d # (建议在此目录创建my.cnf文件并进行相关MySQL配置)
  6. mkdir -p /usr/local/docker_data/mysql/conf/mysql.conf.d
  7. # 宿主机创建日志目录映射到容器
  8. mkdir -p /usr/local/docker_data/mysql/logs

  1. 重新启动容器

  1. docker run \
  2. -d \
  3. --privileged=true \
  4. -p 3306:3306 \
  5. --name mysql \
  6. -v /usr/local/docker/mysql/conf/mysql:/etc/mysql \
  7. -v /usr/local/docker/mysql/data:/var/lib/mysql/ \
  8. -v /usr/local/docker/mysql/logs:/var/log/mysql/ \
  9. -e MYSQL_ROOT_PASSWORD=123456 \
  10. --restart always \
  11. mysql:5.7 \
  12. --character-set-server=utf8mb4 --collation-server=utf8mb4_general_ci

注解:

docker run

run 是运行一个容器

-d \

表示后台运行

--privileged=true \

设值MySQL 的root用户权限, 否则外部不能使用root用户登陆

-p 3306:3306 \

端口映射(宿主机端口:容器端口)

--name mysql \

容器名称

-v /usr/local/docker/mysql/conf/mysql:/etc/mysql \

容器MySQL配置目录映射(宿主机:容器)

-v /usr/local/docker/mysql/data:/var/lib/mysql/ \

容器MySQL数据目录映射(宿主机:容器)

-v /usr/local/docker/mysql/logs:/var/log/mysql/ \

容器MySQL日志目录映射(宿主机:容器)

-e MYSQL_ROOT_PASSWORD=123456 \

容器的环境变量(root账号初始化密码)

--restart always \

表示docker启动,nysql也会启动。

mysql:5.7 \

指定docker镜像 (可以是镜像名称或者镜像ID)

--character-set-server=utf8mb4 --collation-server=utf8mb4_general_ci

设值数据库默认编码

  1. run run 是运行一个容器
  2. -d  表示后台运行
  3. -p  表示容器内部端口和服务器端口映射关联
  4. --privileged=true 设值MySQL 的root用户权限, 否则外部不能使用root用户登陆
  5. -v /usr/local/docker/mysql/conf/mysql:/etc/mysql 将服务器中的配置映射到docker中的/docker/mysql配置
  6. -v /usr/local/docker/mysql/data:/var/lib/mysql/ /  同上,映射数据库的数据目录, 避免以后docker删除重新运行MySQL容器时数据丢失
  7. -e MYSQL_ROOT_PASSWORD=123456   设置MySQL数据库root用户的密码
  8. --name mysql     设值容器名称为mysql
  9. --restart always 表示docker启动,nysql也会启动。
  10. mysql:5.7  表示从docker镜像mysql:5.7中启动一个容器
  11. --character-set-server=utf8mb4 --collation-server=utf8mb4_general_ci 设值数据库默认编码
  1. 数据库登录验证:

  1. 创建账户

docker exec -it mysql5.7 bash
mysql -u root -p
  1. # 创建用户并开启远程登录
  2. CREATE USER '你的账号'@'%' IDENTIFIED BY '你的密码';
  1. # 创建数据库并设置字符集
  2. CREATE DATABASE `库名` CHARACTER SET 'utf8mb4';
  1. # 给账号授权数据库
  2. GRANT ALL PRIVILEGES ON 库名.* TO '你的账号'@'%';
  1. docker 常用命令

  1. # 删除容器(参数可以是容器名称或容器ID)
  2. docker rm mysql5.7
  3. # 删除镜像
  4. docker rmi mysql5.7
  5. # 启动容器
  6. docker start mysql5.7
  7. # 启动容器/重启容器
  8. docker restart mysql5.7
  9. # 停止容器
  10. docker stop mysql5.7
  11. # 进入容器
  12. docker exec -it mysql5.7 bash

点击查看MySQL my.cnf配置介绍

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/很楠不爱3/article/detail/426736
推荐阅读
相关标签
  

闽ICP备14008679号