一、使用docker安装mysql
1、在docker下拉取镜像
输入命令:docker pull registry.cn-hangzhou.aliyuncs.com/acs-sample/mysql:5.7
2、查看下载的镜像,使用命令:docker images
3、名字太长,修改成短的tag
命令:docker tag registry.cn-hangzhou.aliyuncs.com/acs-sample/mysql:5.7 mysql:5.7
4、根据镜像创建容器
命令:docker create -it mysql:5.7
5、启动mysql
命令:docker run --name 名称 -e MYSQL_ROOT_PASSWORD=密码 -d -i -p 宿主机端口:3306 mysql:5.7
命令解析:
--name:容器名
-p:映射宿主主机端口
-v:挂载宿主目录到容器目录
-e:设置环境变量,此处指定root密码
-d:后台运行容器
6、使用docker ps 查看是否起来
7、进入容器
命令:docker exec -it 容器id /bin/bash
8、在容器呢访问数据库
命令:mysql -h 127.0.0.1 -u root -p,回车后输入密码,就是在第5步的时候设置的密码。
9、进入mysql
1)show databases; 查看库
2)use 库名;切换到该库
3) show tables;查看切换库下的表
4) select * from 表名 ....;查询....
5)创建用户 CREATE USER '用户名'@'%' IDENTIFIED BY '密码'; ##%表示匹配任何Host的名称
6)给新创建的用户加全选 GRANT ALL ON *.* TO '上面创建的用户'@'%' ;
7)刷新权限 flush privileges;
10、从docker <---->宿主机拷贝数据
1)从容器里面拷文件到宿主机?
docker cp 容器名:要拷贝的文件在容器里面的路径 要拷贝到宿主机的相应路径
示例: 假设容器名为testtomcat,要从容器里面拷贝的文件路为:/usr/local/tomcat/webapps/test/js/test.js, 现在要将test.js从容器里面拷到宿主机的/opt路径下面,那么命令如下:
docker cp testtomcat:/usr/local/tomcat/webapps/test/js/test.js /opt
2)从宿主机拷文件到容器里面
docker cp 要拷贝的文件路径 容器名:要拷贝到容器里面对应的路径
示例:假设容器名为testtomcat,现在要将宿主机/opt/test.js文件拷贝到容器里面的/usr/local/tomcat/webapps/test/js路径下面,那么命令如下:
docker cp /opt/test.js testtomcat:/usr/local/tomcat/webapps/test/js
11、通过docker-compose 配置容器
version: '2'
services:
容器名:
image: 镜像名
container_name: 容器名
network_mode: "bridge"
restart: always
ports:
- "宿主机端口:3306"
volumes:
- /etc/localtime:/etc/localtime:ro
- ./data:/var/lib/mysql
- ./conf:/etc/mysql
environment:
- LANG=C.UTF-8
- MYSQL_ROOT_PASSWORD=密码
解析:volumes下面的- ./data:/var/lib/mysql和 - ./conf:/etc/mysql,是把docker里面的mysql的表内容映射到这两个文件里面。
映射之前先执行如下命令:
docker cp 容器名:/etc/mysql conf
docker cp 容器名:/var/lib/mysql data
执行完成后,启动docker-compones。
12、linux下查看mysql的路径
命令:ps -ef|grep mysql