实现步骤
- 查看 docker 远程镜像仓库
- 拉取镜像
- 在本地创建目录
- 创建 *.cnf
- 启动 docker
- 连接测试
- docker启动mysql后可能遇到连接不上的问题
- docker启动mysql数据库自动填充时间问题
查看 docker 远程镜像仓库由那些
使用浏览器打开镜像地址:https://hub.docker.com/
在搜索框输入 “mysql” 回车
点击 “mysql” 标签卡,看到镜像 tags
拉取镜像
docker pull mysql:5.7
在本地创建存放数据库文件的目录(容器中的文件,映射到宿主机)
mkdir -p /root/mysql/data /root/mysql/logs /root/mysql/conf
在 /root/mysql/conf 目录中创建 my.cnf 文件
# my.cnf(my可以随意修改)
touch /root/mysql/conf/my.cnf
启动 docker
# -p 将容器中的端口 3306 映射到宿主机上 3306 端口
# -v 将容器中的目录挂载到本地目录
# -e MYSQL_ROOT_PASSWORD=root 数据库密码 root
# -d mysql: 后台启动刚刚拉取的镜像
docker run -p 3306:3306 --name mysql -v /root/mysql/conf:/etc/mysql/conf.d -v /root/mysql/logs:/logs -v /root/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=root -d mysql:5.7
连接数据库
启动时提示:WARNING: IPv4 forwarding is disabled. Networking will not work. 
解决步骤如下:
vi /usr/lib/sysctl.d/00-system.conf
# 添加如下代码
net.ipv4.ip_forward=1
# 重启网卡即可
systemctl restart network
mysql 自动填充时间字段不正确是时区的原因导致的
# 查看 mysql 容器 id
docker ps
# 进入容器 容器 id 按需修改
docker exec -it 529491f947da(容器id) /bin/bash
# 替换时区文件
cp /usr/share/zoneinfo/PRC /etc/localtime
# 退出
exit
# 重启 mysql 容器 id 按需修改
docker restart 529491f947da(容器id)