docker中下载mysql容器实例(详细)

简单版

第一步:查看mysql镜像

docker中下载mysql容器实例(详细)_第1张图片

name                        镜像名字

description               描述

stars                         热度

ofiicial                      官方(是否在docker hub官方仓库有提供此镜像)

auotmated               自动化的

第二步:拉取mysql镜像到本地中

docker中下载mysql容器实例(详细)_第2张图片

 第三步:使用mysql镜像创建并运行mysql容器

命令:

docker run -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7 --name mysql1904

参数解释:

第一个3306:宿主机的端口号

第二个3306:容器的端口号

123456:连接mysql的密码

mysql:5.7: 镜像名

mysql1904: 容器的名字

注意:如果你宿主机Linux安装了mysql,且用了3306,那你宿主机的端口号就不能用3306了,因为已经被占用了。

第三步:查看docker正在运行的容器 

 看到这个mysql1903容器名,说明你第三步成功。

第四步:进入mysql容器内部,并连接mysql

docker中下载mysql容器实例(详细)_第3张图片

 第五步:再外部测试是否能连接mysql容器

docker中下载mysql容器实例(详细)_第4张图片

PS:第五步如果连接失败了,如果基本的连接信息(ip地址,端口号,用户名,密码)都没错,那就把Linux的防火墙服务关闭,命令:systemctl stop firewalld

 第六步:创建数据库和表

docker中下载mysql容器实例(详细)_第5张图片

此方法虽然简单,但是存在两个问题

问题一:插入中文乱码报错

docker中下载mysql容器实例(详细)_第6张图片

问题二:误删除mysql容器,mysql里面数据会丢失

因为存在以上两个问题,所以推出实战版安装mysql

实战版

第一步:创建并运行mysql容器

docker run -d -p 3306:3306 --privileged=true 
-v /zzyyuse/mysql/log:/var/log/mysql 
-v /zzyyuse/mysql/data:/var/lib/mysql 
-v /zzyyuse/mysql/conf:/etc/mysql/conf.d 
-e MYSQL_ROOT_PASSWORD=123456  --name mysql1903 mysql:5.7
复制以下代码,上面的复制进去不行。
docker run -d -p 3306:3306 --privileged=true -v /zzyyuse/mysql/log:/var/log/mysql -v /zzyyuse/mysql/data:/var/lib/mysql -v /zzyyuse/mysql/conf:/etc/mysql/conf.d -e MYSQL_ROOT_PASSWORD=123456  --name mysql1903 mysql:5.7
  1. --privileged=true 指定容器是否为特权容器,特权容器拥有所有的capabilities

  2. -v           给容器挂载存储卷,挂载到容器的某个目录,可以用来备份数据,这样即使容器被删除,只要重新创建运行这个容器,原本数据就可以找回来。(解决上述问题二)

-v /zzyyuse/mysql/log:/var/log/mysql                 mysql的日志文件
-v /zzyyuse/mysql/data:/var/lib/mysql                mysql的数据文件
-v /zzyyuse/mysql/conf:/etc/mysql/conf.d          mysql的配置文件

docker中下载mysql容器实例(详细)_第7张图片

第二步:进入到容器挂载的/zzyyuse/mysql/conf/ 配置目录下,创建my.cnf文件

docker中下载mysql容器实例(详细)_第8张图片

vim my.cnf进入文件,写入以下内容,最好复制:

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

 my.cnf配置文件解决插入中文乱码问题一

第三步:重启mysql容器,让配置生效,进入mysql容器内部,连接起来查看字符集

docker中下载mysql容器实例(详细)_第9张图片

可以看到,字符集都变成utf8了。

结论:docker安装完MySQL并run出容器后,建议请先修改完字符集编码后再新建mysql库-表-插数据 

思考:假如删除mysql容器实例,之前mysql容器里面的数据还在吗?

try time!!!!!

1、先强制删除mysql1903这个镜像实例,docker ps查看docker中正在运行的容器,也看到确实删除了。 

 2、重新创建运行mysql容器,不过容器卷挂载的文件要使用之前挂载的三个目录,因为之前的数据都在那三个目录里面。

docker中下载mysql容器实例(详细)_第10张图片docker中下载mysql容器实例(详细)_第11张图片

 可以看到数据回来了,都还在。

你可能感兴趣的:(docker,docker)