docker mysql 迁移

一、使用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

你可能感兴趣的:(docker mysql 迁移)