当前位置: 首页 > article >正文

Docker环境安装MySQL

一、检查DNS服务器设置

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

[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】)

[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镜像;

docker search mysql

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

docker pull mysql:5.7

使用mysql15.7镜像创建容器(也叫运行镜像):
1、新建mysql容器实例;

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容器实例;

[client]
default_character_set=utf8
[mysqld]
collection_server=utf8_general_ci
character_set_server=utf8

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

docket restart mysql

进入容器实例:

docker exec -it mysql /bin/bash

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

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产生的数据,也可以同步到主机上,将容器内的目录挂载到主机上面,即使容器实例被误删掉也可以新建容器实例拿到数据,避免带来不必要的损失。


http://www.kler.cn/a/373940.html

相关文章:

  • css 在 hover 子元素时,不要让父元素触发 hover 效果
  • PySpark单机模式安装教程
  • idea运行maven项目提示jar不存在,但jar实际上是存在的
  • 深度学习(八) TensorFlow、PyTorch、Keras框架大比拼(8/10)
  • 盘点Windows10系统之下好用的录屏工具!
  • 基于微信小程序的小区管理系统设计与实现(lw+演示+源码+运行)
  • ubuntu交叉编译libffi库给arm平台使用
  • Jenkins Pipeline 部署总结
  • 爬虫笔记22——当当网图书详情页静、动态数据爬取
  • leetcode day7 442
  • 6. 线程池实现
  • 如何安装和使用PowerDesigner
  • TDengine 数据订阅 vs. InfluxDB 数据订阅:谁更胜一筹?
  • ETLCloud遇上MongoDB:灵活数据流,轻松管理
  • 四、k8s快速入门之Kubernetes资源清单
  • 忘记无线网络密码的几种解决办法
  • 【GO学习笔记 go基础】编译器下载安装+Go设置代理加速+项目调试+基础语法+go.mod项目配置+接口(interface)
  • vue中el-table显示文本过长提示
  • 函数的调用
  • vue2和vue3的数据双向绑定差异整理
  • PPT制作新选择:本地部署PPTist结合内网穿透实现实时协作和远程使用
  • 【java batik_使用BATIK解析SVG生成PNG图片】
  • 数字普惠金融-工具变量(2024.2更新)
  • ubuntu 给终端设置代理
  • web文件包含include
  • 变压器漏感对整流电路的影响【电力电子技术3章】