docker个人实践记录
Docker 实践
都是 windows 平台
日常 MySQL
当然数据库启动后,可以使用很多可视化工具进行查看。不过我比较喜欢使用 docker 命令管理(主要是感觉开个终端查看也很方便)
1 | -- 查看正在运行的容器 |
查看容器卷挂载情况
场景:我项目学习时,需要使用到 canal 对数据库的 binlog 进行订阅,然后发送消息,再去实现 Redis 数据的同步更新。
因为 canal 是依赖于 binlog 日志的,所以要开启 MySQL 的 binlog 日志。由于没开,所以写进行配置——查到配置是要写进 my.conf 配置文件,但是由于是 docker 容器,所以得看一下卷挂载路径,否则进入容器内部、即使修改了配置文件,下次启动时还是会失效。
在查资料时,学到了下面一个指令:
1 | -- 查看容器启动时的各种参数 |
使用| Select-String -Pattern ""进行过滤操作(直接使用 inspect 也行,就是信息有点多)
然后根据旧容器的信息,整理出来新的容器启动参数(为了对旧数据迁移、新增-v配置挂载参数):
1 | docker run --name mysql-5.7 |
进入容器后,进行验证,发现确实映射到了宿主机的文件:
但是修改完了还是没能让 binlog 开启:
(问ai说是字符编码有问题(?))所以使用 vscode 修改其编码为 UTF-8 和 LF(实际没去验证,但是还是改了):

但是修改完后,查看 binlog 有无开启,还是没开启的状态。所以问题不在于此……
终极方法使用docker logs mysql-5.7查看日志信息——
关键信息:mysqld: [Warning] World-writable config file '/etc/mysql/conf.d/canal.cnf' is ignored.
意思就是这个配置文件的权限太大了,mysql任务不安全,于是忽略了这个配置文件。
使用 chmod 命令移除其他用户的写入权限(将权限设置为 644 或 600 等):
1 | docker exec -it mysql-5.7 /bin/bash -c "chmod 644 /etc/mysql/conf.d/canal.cnf" |
之后docker restart mysql-5.7,问题解决:




