安装mysql
我们还是先看看docker这张最金典的架构图
整个docker在使用过程中最核心的就是他的镜像,那么我们在用任何的软件服务之前,我们都要把镜像下载下来,因为一个镜像就是我们的一个软件环境,如果我们想让进行运行成软件服务的话,就要用到我们的docker run 命令把他运行成一个容器才可以,所以我们来试试mysql在docker中使用。
1.拉取mysql镜像到本地
访问docker镜像官网(类似于maven仓库那种) 搜索mysql
进入官方版本
查看支持版本,这里不太多
docker pull mysql:tag (tag不加默认最新版本)
2.运行mysql服务
docker run --name mysql -e MYSQL_ROOT_PASSWORD=root -d mysql:tag --没有暴露外部端口外部不能连接
docker run --name mysql -e MYSQL_ROOT_PASSWORD=root -p 3306:3306 -d mysql:tag --暴露外部端口
注意: (1)-e 后跟MYSQL_ROOT_PASSWORD常量,代表给root用户设置密码,参数必选,以上代表密码为root,不然运行失败。(2)tag代表版本,需要与docker images中名字对应
没有开放外部端口的情况下记得用
docker exec -it mysql bash
命令进入容器内部操作哦。
可以看到可以进入。
然后我们来暴露外部端口运行
能够进入,我们用外部工具来测试下能不能访问
成功访问
3.进入mysql容器
docker exec -it 容器名称|容器id bash
4.外部查看mysql日志
docker logs 容器名称|容器id
5.使用自定义配置参数
docker run -p 3306:3306--name mysql -v /root/mysql/conf.d:/etc/mysql/conf.d -e MYSQL_ROOT_PASSWORD=root -d mysql:tag
6.将容器数据位置与宿主机位置挂载保证数据安全
docker run --name mysql -v /root/mysql/data:/var/lib/mysql -v /root/mysql/conf.d:/etc/mysql/conf.d -e MYSQL_ROOT_PASSWORD=root -p 3306:3306 -d mysql:tag
因为数据是在docker容器内部
7.通过其他客户端访问 如Navicat等工具
8.将mysql数据库备份为sql文件
docker exec mysql|容器id sh -c 'exec mysqldump --all-databases -uroot -p"$MYSQL_ROOT_PASSWORD"' > /root/all-databases.sql --导出全部数据
docker exec mysql sh -c 'exec mysqldump --databases 库表 -uroot -p"$MYSQL_ROOT_PASSWORD"' > /root/all-databases.sql --导出指定库数据
docker exec mysql sh -c 'exec mysqldump --no-data --databases 库表 -uroot -p"$MYSQL_ROOT_PASSWORD"' > /root/all-databases.sql --导出指定库数据不要数据
9.执行sql文件到mysql中
docker exec -i mysql sh -c 'exec mysql -uroot -p"$MYSQL_ROOT_PASSWORD"' < /root/xxx.sql