Docker环境安装MySQL

一、检查DNS服务器设置

如果DNS服务器出现问题,也可能导致拉取镜像报错。可以通过查看/etc/resolv.conf文件来检查DNS服务器设置。如果显示nameserver后面没有地址,或者显示IP地址有问题,可以尝试修改该文件。(如有修改:重启docker【systemctl restart docker】)

bash 复制代码
[root@localhost docker]# cat /etc/resolv.conf 
# Generated by NetworkManager
search localdomain
#nameserver 192.168.146.2
nameserver 114.114.114.114
nameserver 8.8.8.8

二、修改Docker配置文件

首先找到daemon.json文件,如果没有该文件,可自行创建。如有修改:重启docker【systemctl restart docker】)

bash 复制代码
[root@localhost docker]# cat /etc/docker/daemon.json 
{
	"registry-mirrors": ["https://docker-proxy.741001.xyz","https://registry.docker-cn.com"]
}
[root@localhost docker]# 

docker hub上面查找mysql镜像;

bash 复制代码
docker search mysql

从docker hub上(阿里云加速器)拉取mysql镜像到本地标签为5.7;

bash 复制代码
docker pull mysql:5.7

使用mysql15.7镜像创建容器(也叫运行镜像):

1、新建mysql容器实例;

bash 复制代码
docker run -d -p 3306:3306 --privileged=true
-v /lhj/mysql/log:/var/log/mysql
-v /lhj/mysql/data:/var/lib/mysql
-v /lhj/mysql/conf:/etc/mysql/conf.d
-v /home/mysql/mysql-files:/var/lib/mysql-files/
-e MYSQL_ROOT_PASSWORD=123456 --name mysql mysql:5.7

2、新建my.cnf,通过容器卷同步给mysql容器实例;

bash 复制代码
[client]
default_character_set=utf8
[mysqld]
collection_server=utf8_general_ci
character_set_server=utf8

3、重新启动mysql容器实例在重新进入并查看字符编码;

bash 复制代码
docket restart mysql

进入容器实例:

bash 复制代码
docker exec -it mysql /bin/bash

MySQL查看字符集:SHOW VARIABLES LIKE 'character%';

bash 复制代码
mysql> SHOW VARIABLES LIKE 'character%';
+--------------------------+----------------------------+
| Variable_name            | Value                      |
+--------------------------+----------------------------+
| character_set_client     | utf8                       |
| character_set_connection | utf8                       |
| character_set_database   | utf8                       |
| character_set_filesystem | binary                     |
| character_set_results    | utf8                       |
| character_set_server     | utf8                       |
| character_set_system     | utf8                       |
| character_sets_dir       | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+
8 rows in set (0.01 sec)

mysql> 

三、总结

我们发现如果将数据也存放到容器上,一旦容器删除,数据会随之丢失,而实际开发工作中需要的是数据持久化,所以docker引入容器数据卷技术,容器间的数据可以共享,docker产生的数据,也可以同步到主机上,将容器内的目录挂载到主机上面,即使容器实例被误删掉也可以新建容器实例拿到数据,避免带来不必要的损失。

相关推荐
m***11901 分钟前
MySQL官网驱动下载(jar包驱动和ODBC驱动)【详细教程】
数据库·mysql
不爱笑的良田8 分钟前
从零开始的云原生之旅(十二):从 Service 到 Ingress——K8s 服务暴露完全指南
云原生·容器·kubernetes
debug骑士9 分钟前
云原生边缘计算系统在工业物联网中的实时智能调度与优化策略研究
mysql
ringking12342 分钟前
docker源文件配置以及密钥文件
运维·docker·容器
chxii43 分钟前
第六章:MySQL DQL 表之间的关系 自连接 一对一、一对多、多对一、多对多
java·前端·mysql
编织幻境的妖1 小时前
Docker和Kubernetes 常用命令
docker·容器·kubernetes
IT教程资源C2 小时前
(N_144)基于微信小程序在线订餐系统
mysql·vue·uniapp·前后端分离·订餐小程序·springboot订餐
蟹至之2 小时前
增删查改基础(其三)—— 聚合函数、分组查询(group by与having)、内置函数
数据库·mysql·增删查改
LumenL1u3 小时前
CentOS 7/8/9 上安装 MySQL 8.0+ 完整指南
linux·mysql
Wang's Blog3 小时前
MySQL: 数据库索引深度解析:B树与哈希索引的结构、应用与优化策略
数据库·b树·mysql