当前位置:首页 » 《关于电脑》 » 正文

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

24 人参与  2024年04月17日 13:00  分类 : 《关于电脑》  评论

点击全文阅读


安装,以MySql5.7版本为例子。

docker默认的仓库比较慢,可以参考以下文章 第五标题 设置阿里云镜像仓库。

docker (简介、dcoker详细安装步骤、容器常用命令)一站打包- day01-CSDN博客

一、拉去mysql镜像

docker pull mysql:5.7

如下安装完成 

[root@syf ~]# docker pull mysql:5.75.7: Pulling from library/mysql72a69066d2fe: Pull complete 93619dbc5b36: Pull complete 99da31dd6142: Pull complete 626033c43d70: Pull complete 37d5d7efb64e: Pull complete ac563158d721: Pull complete d2ba16033dad: Pull complete 0ceb82207cd7: Pull complete 37f2405cae96: Pull complete e2482e017e53: Pull complete 70deed891d42: Pull complete Digest: sha256:f2ad209efe9c67104167fc609cca6973c8422939491c9345270175a300419f94Status: Downloaded newer image for mysql:5.7docker.io/library/mysql:5.7

 查看本地镜像仓库拉去好的mysql,确认版本号

docker images

如下: 

[root@syf ~]# docker imagesREPOSITORY   TAG       IMAGE ID       CREATED         SIZEmysql        5.7       c20987f18b13   23 months ago   448MB

二、后台运行mysql镜像

2.1 先配置mysql配置文件

 如下流程1,2步骤(复制即可):新建目录  /data/dockerData/mysql/conf,编写 my.config文件

1-新建文件夹[root@syf/]# mkdir -p /data/dockerData/mysql/conf[root@syf/]# cd /data/dockerData/mysql/conf2-创建文件[root@syf conf]# touch my.config[root@syf conf]# lsmy.config3-编写文件内容  (进入后 i 子母键插入,黏贴下面配置,:wq! 保存并退出)[root@syf conf]# vim my.config 

 my.config 配置文件如下

[mysql]#设置mysql客户端默认字符集default-character-set=UTF8MB4 [mysqld]#设置3306端口port=3306 #允许最大连接数max_connections=200 #允许连接失败的次数max_connect_errors=10 #默认使用“mysql_native_password”插件认证default_authentication_plugin=mysql_native_password #服务端使用的字符集默认为8比特编码的latin1字符集character-set-server=UTF8MB4 #开启查询缓存explicit_defaults_for_timestamp=true #创建新表时将使用的默认存储引擎default-storage-engine=INNODB #等待超时时间秒wait_timeout=60 #交互式连接超时时间秒interactive-timeout=600secure_file_priv=/var/lib/mysql [client]default-character-set=UTF8MB4
 2.2 运行mysql容器

注意:

修改字符集编码需要重启容器,完成后要在 服务器上查看字符集。挂载数据卷:实例删除后数据依存在
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-查看镜像id,即IMAGE ID[root@syf conf]# docker imagesREPOSITORY   TAG       IMAGE ID       CREATED         SIZEmysql        5.7       c20987f18b13   23 months ago   448MB2-后台运行镜像,创建数据卷,指定3306端口[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 c20987f18b13bc74416fac38678c2e7ea5c61bc3a87215541125c7b3a80368892e4e6efb4f393-查看容器[root@syf conf]# docker psCONTAINER ID   IMAGE          COMMAND                  CREATED          STATUS          PORTS                                                  NAMESbc74416fac38   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-查看容器[root@iZuf6hxabqikytnrumsi4gZ ~]# docker psCONTAINER ID   IMAGE          COMMAND                  CREATED          STATUS          PORTS                                                  NAMESbc74416fac38   c20987f18b13   "docker-entrypoint.s…"   28 minutes ago   Up 28 minutes   0.0.0.0:3306->3306/tcp, :::3306->3306/tcp, 33060/tcp   mysql5.72-进入容器[root@iZuf6hxabqikytnrumsi4gZ ~]# docker exec -it  bc74416fac38 /bin/bash3-登录mysqlroot@bc74416fac38:/# mysql -u root -pEnter password:1234Welcome to the MySQL monitor.  Commands end with ; or \g.Your MySQL connection id is 5Server version: 5.7.36 MySQL Community Server (GPL)Copyright (c) 2000, 2021, Oracle and/or its affiliates.Oracle is a registered trademark of Oracle Corporation and/or itsaffiliates. Other names may be trademarks of their respectiveowners.Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.4-查看数据库mysql> show databases;+--------------------+| Database           |+--------------------+| information_schema || mysql              || performance_schema || sys                |+--------------------+4 rows in set (0.00 sec)mysql> 

最后一定要放开防火墙端口

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

 mysql容器开机启动

开机启动docker update --restart=always 容器ID取消docker update --restart=no 容器ID


点击全文阅读


本文链接:http://m.zhangshiyu.com/post/96501.html

<< 上一篇 下一篇 >>

  • 评论(0)
  • 赞助本站

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

关于我们 | 我要投稿 | 免责申明

Copyright © 2020-2022 ZhangShiYu.com Rights Reserved.豫ICP备2022013469号-1