事情的起因是是想要打开mysql上的binglog功能,但是直接修改我的mysql的配置总是报错,本机上的mysql卸载重装之类的操作非常耗费时间,于是我想能不能使用docker创建一个mysql容器,修改其配置,这样就会比较方便。
1. docker搜索镜像
$sudo docker search mysql
2. docker拉取镜像
将镜像拉到本地,可以根据这个镜像创建容器
$ sudo docker pull mysql
3. docker查看本地镜像
4. docker运行镜像
咱们先不修改说明配置,直接创建一个容器查看一下效果
$ sudo docker run --name mysql_test -e MYSQL\_ROOT\_PASSWORD=123456 -p 3306:3306 -d mysql
5. 查看效果
本地的话,先使用docker登录到这个容器的命令行:
$ sudo docker exec -it mysql_test bash
然后直接使用设置的账号密码登录mysql:
/# mysql -u root -p
远程连接也可以用:
6. 如何修改mysql容器中的配置文件my.cnf
找一下就能发现,docker mysql容器的配置文件在/etc/mysql/my.cnf
:
-
先通过docker cp将容器内的文件复制到本地:
# 用法 $ sudo docker cp ${容器名}:${文件在容器内的地址} ${文件在本机的地址} $ sudo docker cp mysql_test:/etc/mysql/my.cnf ~/
-
在本地修改配置文件
我是想开启binlog,因此我就加上binlog的几个配置项,修改这些配置文件的时候要注意一下,这个文件一会是需要上传到容器之中的,因此要注意这里的路径要写容器内的路径:
-
通过docker cp命令将本地修改好的配置文件上传到容器内:
# 用法 $ sudo docker cp ${本地文件路径} ${容器名}:${容器中文件路径} $ sudo docker cp ~/my.cnf mysql_test:/etc/mysql/my.cnf
上容器内看一眼,我们写入的修改已经在配置文件中了
7. 重启容器
# 用法
$sudo docker restart ${容器名}
$ sudo docker restart mysql_test
8. 容器管理
# 查看所有正在运行的容器
$ sudo docker ps
# 查看所有存在的容器
$ sudo docker ps -a
# 停止运行容器
$ sudo docker stop ${容器id}
9. 镜像管理
# 查看下载的所有镜像
$ sudo docker images
# 删除镜像
$ sudo docker rmi hello-world
# 当然,最保险的方式是使用 image id来删除镜像
$ sudo docker rmi b5b70952fa24