1.准备主机文件目录
创建挂载目录
mkdir -p /opt/docker/mysql/data /opt/docker/mysql/conf
设置权限:为我们的挂载目录赋予权限 很重要真的很重要.以后不论你们做什么镜像.凡是挂载目录切记要为目录赋予权限,否则.运行镜像后会发现statu 状态为exited,建议生产时把权限设置为644 只有root用户可以读可写
chmod -R 777 /opt/docker/mysql
进入本地配置文件夹
cd /opt/docker/mysql/conf
创建配置文件touch my.cnf
,打开vi my.cnf
,复制以下内容保存
# 我的配置.通常都是字符集与端口的配置,喜欢怎么配置可以自己配.也可以直接使用我的
[client]
port=3306
default-character-set=utf8
[mysql]
default-character-set=utf8
[mysqld]
character_set_server=utf8
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
# 配置大小写不敏感
lower_case_table_names=1
2.docker 指令启动容器
docker run -d -it \
--name mysql5.7 -p 3306:3306 \
--network mynet \
-e MYSQL_ROOT_PASSWORD=root --privileged=true\
-v /opt/docker/mysql/conf/my.cnf:/etc/mysql/my.cnf \
-v /opt/docker/mysql/data:/var/lib/mysql \
-v /opt/docker/mysql/logs:/var/log/mysql \
--restart=always mysql:5.7
参数解释
–name 为你运行的镜像命名
-p 映射端口 虚拟机端口 : docker端口
-e 为mysql设置密码
–privileged=true 为mysql获取root权限
-v 挂载目录/文件 虚拟机目录/文件:docker目录/文件
-d 守护进程后台运行
-it 启动并运行
–restart=always 在docker服务重启后,自动重启mysql服务,也可以吧docker 服务作为开机启动.这样mysql就可以跟着开机启动了
mysql:5.7 镜像名称:tag
跟着一步一步的弄下来一般不会出错
当镜像运行起来后.先不要急着从外部连接.还有一步很重要
那就是开通端口
查看那些端口已经开通 firewall-cmd --list-ports
开通端口 firewall-cmd --zone=public --add-port=3306/tcp --permanent
重启防火墙 firewall-cmd --reload
查看端口是否开启成功 firewall-cmd --zone=public --query-port=3306/tcp
端口开启成功 使用native 或者 SQLyog进行连接
详细解释:mysql安装过程参考 https://blog.youkuaiyun.com/zhaluo_dehezi/article/details/85162886