• win10-docker-mysql镜像安装运行基础


    win10-docker-mysql镜像安装运行基础

    一、搜索可用镜像

    1.1 查询mysql镜像

    docker search mysql

    >docker search mysql
    NAME                            DESCRIPTION                                      STARS     OFFICIAL   AUTOMATED
    mysql                           MySQL is a widely used, open-source relation…   14406     [OK]
    mariadb                         MariaDB Server is a high performing open sou…   5500      [OK]
    percona                         Percona Server is a fork of the MySQL relati…   619       [OK]
    phpmyadmin                      phpMyAdmin - A web interface for MySQL and M…   854       [OK]
    bitnami/mysql                   Bitnami MySQL Docker Image                       96                   [OK]
    ...
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    查找结果说明:

    • NAME 镜像名
    • STARS 关注度
    • OFFICIAL 是否官方镜像

    1.2 确定镜像版本号

    因为通过 docker search 并不能查看某个镜像的版本信息,如我需要特定版本的 mysql 那怎么办呢~

    • 方式 1
      • 通过 Docker Hub要想查看镜像的版本和TAG,需要在 docker hub 查看
      • 地址如下:https://hub.docker.com
      • 进入之后,在页面左上角搜索框搜索,例如搜索mysql
      • 点击查看详情
      • 点击Tags,即可看见所有的版本
      • 找到Tags 后,就可以根据需要的版本来下载了。如tags为5.6的版本
      • 按照 Docker 的格式来拉取不同 tags 的 mysql 镜像,用冒号隔开
      • docker pull mysql:5.6
    • 方式 2,通过官网查看版本号信息
      • 管网:https://www.mysql.com/
    • 方式 3,通过尝试加版本号猜测
      • 以 mysql 为例:我们从官网上知道了 mysql 有 5.6 版本 和 8.0 版本,再结合 Docker 的规则(以:分割),就可以猜测到拉取
      • mysql 5.6 的命令如下:
    # 拉取 mysql 最新版本镜像 ,默认tag = latest
    docker pull mysql:latest
    # 拉取 mysql 5.6 镜像
    docker pull mysql:5.6
    # 拉取 mysql 8.0 镜像
    docker pull mysql:8.0
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    二、运行mysql容器

    #首次运行
    docker run -p 3306:3306 --name x_mysql_5_6 -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.6
    run命令解释:
        -p 3306:3306 #指定端口映射,格式为:主机(宿主)端口:容器端口
        --name x_mysql_5_6  #为容器指定一个名称,名字叫xxxxx;
        -e MYSQL_ROOT_PASSWORD=123456   #设置环境变量,参数用于设置 MySQL 的 root 用户密码
        -d #后台运行
        -v: 绑定一个卷
    
    #启动一个已停止的容器
    docker start x_mysql_5_6
    
    #停止容器
    docker stop x_mysql_5_6
    
    #重启容器
    docker restart x_mysql_5_6
    
    #查看已运行的容器
    docker ps
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21

    2.1 进入mysql

    • 方法一:在docker中进入
      • 打开docker选择images,查看镜像列表;
      • 镜像mysql:5.6的status列点击In use进入容器列表;
      • 点击刚运行的容器x_mysql_5_6,进入容器管理页;
      • 点击terminal进入该容器命令行界面;
    • 方法二:本机命令行进入
      • 语法:docker exec [OPTIONS] Container Command [Args…]
      • 执行:docker exec -it x_mysql_5_6 mysql -uroot -p
      • exec命令说明:
        • -it 参数用于进入容器的交互模式;
        • mysql -uroot -p 需要一起看,为mysql标准命令行命令+参数,表示进入容器后执行的命令;
        • 进入后可以在本地控制台中操作容器中的mysql数据库了!
    • 方法三:进入容器系统控制台
      • 执行:docker exec -it x_mysql_5_6 /bin/bash

    2.2 测试mysql是否正常

    • 执行如下命令:
      • 三种登录命令,登录到mysql控制台:
        • mysql -u root -p //登录到MySQL服务器
        • mysql -u root -p database_name //连接到指定的MySQL数据库
        • mysql -h remote_mysql_host_ip -u root -p //登录到远程MySQL服务器
        • 上述三个命令执行后都需要数据库root账号的登录密码(运行时MYSQL_ROOT_PASSWORD参数指定的密码)
        • 登录成功后显示:Welcome to the MySQL monitor.提示
      • 执行以下命令
        • show databases; //查看所有数据库名
        • use mysql; //使用mysql库
        • show tables; //查看库中的所有表名
        • 退出执行:exit 或 ctrl+c

    三、将mysql数据存储目录映射到宿主机做持久化

    对已经运行的容器更改目录映射不太方便,这里采用删除重新运行的方式;

    • 容器名:x_mysql_5_6;
    • 宿主机目录:D:\docker\x_mysql_5_6\data
    • 映射命令:-v D:\docker\x_mysql_5_6\data:/var/lib/mysql
      • /var/lib/mysql为容器的默认数据目录
    #停止容器
    docker stop x_mysql_5_6
    #产品容器状态
    docker ps -a
    #删除容器
    docker rm -f x_mysql_5_6
    #重新运行容器
    docker run -d -p 3306:3306 --name x_mysql_5_6 -e MYSQL_ROOT_PASSWORD=123456 -v D:\docker\x_mysql_5_6\data:/var/lib/mysql mysql:5.6
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
  • 相关阅读:
    如何在JavaScript中使用for循环
    Spring和SpringBoot中的@Component 和@ComponentScan注解用法介绍和注意事项
    C++哈希(无序容器,哈希表)
    软考高级五大证书,哪个更值得考?
    Go中GUI库fyne
    互联网摸鱼日报(2023-05-27)
    Caused by: java.io.InvalidClassException: failed to read class descriptor
    Git: 工作区、暂存区、本地仓库、远程仓库
    Kafka - Kafka生产者|发送消息|分区策略|提高吞吐量|数据可靠性|数据去重|数据有序
    haproxy+keepalived实战
  • 原文地址:https://blog.csdn.net/xxj_jing/article/details/132622807