一、拉取 Docker Hub 官方提供的MySQL镜像
sudo docker pull mysql:5.7
拉取mysql:5.7
二、创建数据、日志存放路径
~$ mkdir -p ~/mysql_wechatTask/{data,logs}
三、运行容器
sudo docker run -d --name mysql \
-v ~/mysql_wechatTask/data:/var/lib/mysql \
-e MYSQL_ROOT_PASSWORD=111111 \
-p 3306:3306 \
mysql:5.7
#-d: –后台运行容器
#–name mysql: –创建的容器名称
#-v ~/mysql/data:/var/lib/mysql: –将主机当前目录下的~/mysql/data挂载到容器的/var/lib/mysql
#-e MYSQL_ROOT_PASSWORD=111111: –使用111111作为root账号的密码
#-p 3306:3306: –容器的3306端口映射到宿主机器
#mysql:5.7: –镜像Name:Tag
注意: 官方拉取的MySQL默认的数据存放路径为/var/lib/mysql,而在MySQL容器中,不支持修改,所以采用挂载的方式修改数据存放路径。
运行mysql容器
四、进入容器
sudo docker exec -it mysql bash
五、开启远程连接
1 登录MySQL
mysql -uroot -p111111
2 进行授权
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '111111' WITH GRANT OPTION;
FLUSH PRIVILEGES;
EXIT;
mysql开启远程登录
六、大小写忽略
1 拷贝容器中的mysqld.cnf文件
sudo docker cp mysql:./etc/mysql/mysql.conf.d/mysqld.cnf \
~/mysql_wechatTask/mysqld.cnf
拷贝容器中的mysqld.cnf文件
2 修改mysqld.cnf文件,添加:
[mysqld]
lower_case_table_names=1
修改mysqld.cnf文件
3 拷贝修改后的mysqld.cnf文件到容器
sudo docker cp ~/mysql_wechatTask/mysqld.cnf \
mysql:./etc/mysql/mysql.conf.d/mysqld.cnf
七、重启容器
sudo docker restart mysql
八、查看MySQL日志
sudo docker logs mysql
查看mysql日志
九、远程链接docker上的mysql数据库
image.png十、停止容器并提交当前容器到镜像
# sudo docker stop <容器ID>
#回到Docker下面,停止容器
sudo docker stop e6d7ab874d50
#提交当前容器到镜像
# docker commit <容器ID> <NAME/VERSION>
sudo docker commit e6d7ab874d50 mysql_wechat_task/5.7nodata
提交当前容器到镜像
image.png
在启动一个实例
sudo docker run -d --name mysql_intance_wechat_task \
-v ~/mysql_wechatTask/data:/var/lib/mysql \
-e MYSQL_ROOT_PASSWORD=111111 \
-p 3306:3306 \
mysql_wechat_task/5.7nodata:latest
image.png
十一、备份mysql数据文件(需要先停止容器哦)
$ sudo tar -zcvf ~/mysql_data_bak/mysql_wechatTask.tar.gz mysql_wechatTask
image.png
十二、其他机器docker需要该数据库注意事项
1:docker镜像备份到镜像服务器(如阿里云-容器镜像服务器)
2: 目标docker去镜像服务器拉取该镜像
3:数据库copy文件恢复到指定的目录
4 、docker运行拉取下来的容器(注意指定号mysql数据库的路径哦)
网友评论