赞
踩
安装,以MySql5.7版本为例子。
docker默认的仓库比较慢,可以参考以下文章 第五标题 设置阿里云镜像仓库。
docker pull mysql:5.7
如下安装完成
[root@syf ~]# docker pull mysql:5.7 5.7: Pulling from library/mysql 72a69066d2fe: 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:f2ad209efe9c67104167fc609cca6973c8422939491c9345270175a300419f94 Status: Downloaded newer image for mysql:5.7 docker.io/library/mysql:5.7
查看本地镜像仓库拉去好的mysql,确认版本号
docker images
如下:
- [root@syf ~]# docker images
- REPOSITORY TAG IMAGE ID CREATED SIZE
- mysql 5.7 c20987f18b13 23 months ago 448MB
如下流程1,2步骤(复制即可):新建目录 /data/dockerData/mysql/conf,编写 my.config文件
- 1-新建文件夹
- [root@syf/]# mkdir -p /data/dockerData/mysql/conf
- [root@syf/]# cd /data/dockerData/mysql/conf
-
- 2-创建文件
- [root@syf conf]# touch my.config
- [root@syf conf]# ls
- my.config
-
- 3-编写文件内容 (进入后 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=600 secure_file_priv=/var/lib/mysql [client] default-character-set=UTF8MB4
注意:
- 修改字符集编码需要重启容器,完成后要在 服务器上查看字符集。
- 挂载数据卷:实例删除后数据依存在
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 images
- REPOSITORY TAG IMAGE ID CREATED SIZE
- mysql 5.7 c20987f18b13 23 months ago 448MB
-
- 2-后台运行镜像,创建数据卷,指定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 c20987f18b13
- bc74416fac38678c2e7ea5c61bc3a87215541125c7b3a80368892e4e6efb4f39
-
- 3-查看容器
- [root@syf conf]# docker ps
- CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
- 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要开放)
1-查看容器 [root@iZuf6hxabqikytnrumsi4gZ ~]# docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 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 2-进入容器 [root@iZuf6hxabqikytnrumsi4gZ ~]# docker exec -it bc74416fac38 /bin/bash 3-登录mysql root@bc74416fac38:/# mysql -u root -p Enter password:1234 Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 5 Server 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 its affiliates. Other names may be trademarks of their respective owners. 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
,重新加载防火墙。
- 开机启动
- docker update --restart=always 容器ID
-
- 取消
- docker update --restart=no 容器ID
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。