docker 安装 mysql5.7(全网最详细)

打印 上一主题 下一主题

主题 534|帖子 534|积分 1602

安装,以MySql5.7版本为例子。
  docker默认的仓库比力慢,可以参考以下文章 第五标题 设置阿里云镜像仓库。
  docker (简介、dcoker详细安装步调、容器常用命令)一站打包- day01-CSDN博客
  一、拉去mysql镜像

  1. docker pull mysql:5.7
复制代码
如下安装完成 
  1. [root@syf ~]# docker pull mysql:5.7
  2. 5.7: Pulling from library/mysql
  3. 72a69066d2fe: Pull complete
  4. 93619dbc5b36: Pull complete
  5. 99da31dd6142: Pull complete
  6. 626033c43d70: Pull complete
  7. 37d5d7efb64e: Pull complete
  8. ac563158d721: Pull complete
  9. d2ba16033dad: Pull complete
  10. 0ceb82207cd7: Pull complete
  11. 37f2405cae96: Pull complete
  12. e2482e017e53: Pull complete
  13. 70deed891d42: Pull complete
  14. Digest: sha256:f2ad209efe9c67104167fc609cca6973c8422939491c9345270175a300419f94
  15. Status: Downloaded newer image for mysql:5.7
  16. docker.io/library/mysql:5.7
复制代码
 查察本地镜像仓库拉去好的mysql,确认版本号
  1. docker images
复制代码
如下: 
  1. [root@syf ~]# docker images
  2. REPOSITORY   TAG       IMAGE ID       CREATED         SIZE
  3. mysql        5.7       c20987f18b13   23 months ago   448MB
复制代码
二、背景运行mysql镜像

2.1 先设置mysql设置文件

 如下流程1,2步调(复制即可):新建目录  /data/dockerData/mysql/conf,编写 my.config文件
  1. 1-新建文件夹
  2. [root@syf/]# mkdir -p /data/dockerData/mysql/conf
  3. [root@syf/]# cd /data/dockerData/mysql/conf
  4. 2-创建文件
  5. [root@syf conf]# touch my.config
  6. [root@syf conf]# ls
  7. my.config
  8. 3-编写文件内容  (进入后 i 子母键插入,黏贴下面配置,:wq! 保存并退出)
  9. [root@syf conf]# vim my.config
复制代码
 my.config 设置文件如下
  1. [mysql]
  2. #设置mysql客户端默认字符集
  3. default-character-set=UTF8MB4
  4. [mysqld]
  5. #设置3306端口
  6. port=3306
  7. #允许最大连接数
  8. max_connections=200
  9. #允许连接失败的次数
  10. max_connect_errors=10
  11. #默认使用“mysql_native_password”插件认证
  12. default_authentication_plugin=mysql_native_password
  13. #服务端使用的字符集默认为8比特编码的latin1字符集
  14. character-set-server=UTF8MB4
  15. #开启查询缓存
  16. explicit_defaults_for_timestamp=true
  17. #创建新表时将使用的默认存储引擎
  18. default-storage-engine=INNODB
  19. #等待超时时间秒
  20. wait_timeout=60
  21. #交互式连接超时时间秒
  22. interactive-timeout=600
  23. secure_file_priv=/var/lib/mysql
  24. [client]
  25. default-character-set=UTF8MB4
复制代码
 2.2 运行mysql容器

   留意:
  

  • 修改字符集编码需要重启容器,完成后要在 服务器上查察字符集。
  • 挂载数据卷:实例删除后数据依存在
  1. docker run  --privileged -d -p 3306:3306 -v /data/dockerData/mysql/conf/my.config:/etc/mysql/my.config -v /data/dockerData/mysql/logs:/logs -v /data/dockerData/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=1234 --name mysql5.7 容器id
复制代码
运行如下: 
  1. 1-查看镜像id,即IMAGE ID
  2. [root@syf conf]# docker images
  3. REPOSITORY   TAG       IMAGE ID       CREATED         SIZE
  4. mysql        5.7       c20987f18b13   23 months ago   448MB
  5. 2-后台运行镜像,创建数据卷,指定3306端口
  6. [root@syf conf]# docker run  --privileged -d -p 3306:3306 -v /data/dockerData/mysql/conf/my.config:/etc/mysql/my.config -v /data/dockerData/mysql/logs:/logs -v /data/dockerData/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=1234 --name mysql5.7 c20987f18b13
  7. bc74416fac38678c2e7ea5c61bc3a87215541125c7b3a80368892e4e6efb4f39
  8. 3-查看容器
  9. [root@syf conf]# docker ps
  10. CONTAINER ID   IMAGE          COMMAND                  CREATED          STATUS          PORTS                                                  NAMES
  11. bc74416fac38   c20987f18b13   "docker-entrypoint.s…"   13 seconds ago   Up 11 seconds   0.0.0.0:3306->3306/tcp, :::3306->3306/tcp, 33060/tcp   mysql5.7
复制代码
上面运行镜像容器参数详细解释
   
  --privileged  允许挂载数据卷,默认是读写权限rw
  
  -d:以背景方式运行实例,(退出容器mysql依旧运行)
  
  设置端口映射:
-p 3306:3306  指定宿主机器3306 :docker容器3306端口 映射。
  
mysql数据卷挂载解读:
1.日记文件挂载 :-v /data/dockerData/mysql/logs:/logs ()
将容器中的日记文件夹 /var/log/mysql 挂载到 宿主机对应的 /mydata/mysql 文件夹中。
  
2.数据文件挂载: -v /data/dockerData/mysql/data:/var/lib/mysql 
将容器中的数据文件夹 /var/lib/mysql 挂载到宿主机对应的 /mydata/mysql/data 文件夹中。
  
3.mysql 设置文件挂载:-v /data/dockerData/mysql/conf/my.config:/etc/mysql/my.config
将容器的设置文件夹etc/mysql/my.config挂载到宿主机对应的 /data/dockerData/mysql/conf/my.config 文件夹中。
  
  设置数据库root的暗码:
  MYSQL_ROOT_PASSWORD=数据库暗码
  
  设置mysql容器名称:
  --name mysql5.7
  
  c20987f18b13   :指定用这个镜像来创建运行实例。
   最后:连接你的mysql (服务器端口 3306要开放
2.3 查察mysql,并登入

  1. 1-查看容器
  2. [root@iZuf6hxabqikytnrumsi4gZ ~]# docker ps
  3. CONTAINER ID   IMAGE          COMMAND                  CREATED          STATUS          PORTS                                                  NAMES
  4. bc74416fac38   c20987f18b13   "docker-entrypoint.s…"   28 minutes ago   Up 28 minutes   0.0.0.0:3306->3306/tcp, :::3306->3306/tcp, 33060/tcp   mysql5.7
  5. 2-进入容器
  6. [root@iZuf6hxabqikytnrumsi4gZ ~]# docker exec -it  bc74416fac38 /bin/bash
  7. 3-登录mysql
  8. root@bc74416fac38:/# mysql -u root -p
  9. Enter password:1234
  10. Welcome to the MySQL monitor.  Commands end with ; or \g.
  11. Your MySQL connection id is 5
  12. Server version: 5.7.36 MySQL Community Server (GPL)
  13. Copyright (c) 2000, 2021, Oracle and/or its affiliates.
  14. Oracle is a registered trademark of Oracle Corporation and/or its
  15. affiliates. Other names may be trademarks of their respective
  16. owners.
  17. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
  18. 4-查看数据库
  19. mysql> show databases;
  20. +--------------------+
  21. | Database           |
  22. +--------------------+
  23. | information_schema |
  24. | mysql              |
  25. | performance_schema |
  26. | sys                |
  27. +--------------------+
  28. 4 rows in set (0.00 sec)
  29. mysql>
复制代码
最后一定要放开防火墙端口

   

  • 输入指令:firewall-cmd --zone=public --add-port=3306/tcp --permanent,开放防火墙指定端口。
  • 输入指令:firewall-cmd --reload,重新加载防火墙。
  

 mysql容器开机启动

  1. 开机启动
  2. docker update --restart=always 容器ID
  3. 取消
  4. docker update --restart=no 容器ID
复制代码



免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

光之使者

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表