• Docker:本地目录挂载


    1. 案例:MySQL容器的数据挂载

    1. 查看MySQL容器,判断是否有数据卷挂载
    2. 基于宿主机目录实现MySQL数据目录、配置文件、初始化脚本的挂载
    [root@172 _data]# docker inspect nginx
    
    • 1

    docker inspect nginx 是用来获取关于 Docker 容器或镜像配置和元数据的详细信息的命令。

    当你运行 docker inspect 命令时,它将返回一个 JSON 格式的输出,其中包含有关指定容器或镜像的各种信息,包括:名称、ID、创建时间、网络设置、挂载点、端口映射、环境变量、镜像信息等等。

    对于 docker inspect nginx 命令来说,它会返回有关名为 “nginx” 的容器的详细信息。你可以使用这些信息来了解容器的配置、网络设置、挂载点和其他相关的元数据。

    挂载信息
    在这里插入图片描述

    查看数据卷
    在这里插入图片描述

    查看MySQL数据卷挂载在宿主机的位置,但是我们没有设置数据卷,所以是乱码
    在这里插入图片描述

    mysql的重要数据都在宿主机中
    在这里插入图片描述

    2. 将MySQL挂载到我们指定的目录

    MySQL会将数据存储目录挂载到宿主机,但是MySQL会生成匿名卷,当我们对MySQL进行升级时,会把原来的MySQL容器删除,为了原来数据不丢失(当然可以吧原来的数据迁移到新的升级版本后mysql的匿名卷),我们可以将容器目录与宿主机指定目录挂载。

    # 挂载本地目录
    -v 本地目录:容器内目录
    # 挂载本地文件
    -v 本地文件:容器内文件
    
    • 1
    • 2
    • 3
    • 4

    注意:本地目录或文件必须以 / 或 ./开头,如果直接以名字开头,会被识别为数据卷名而非本地目录名。


    基于宿主机目录实现MySQL数据目录、配置文件、初始化脚本的挂载

    在这里插入图片描述

    # 1.删除原来的MySQL容器
    docker rm -f mysql
    
    # 2.进入root目录
    cd ~
    
    # 3.创建并运行新mysql容器,挂载本地目录
    docker run -d \
      --name mysql \
      -p 3306:3306 \
      -e TZ=Asia/Shanghai \
      -e MYSQL_ROOT_PASSWORD=123 \
      -v ./mysql/data:/var/lib/mysql \
      -v ./mysql/conf:/etc/mysql/conf.d \
      -v ./mysql/init:/docker-entrypoint-initdb.d \
      mysql
    
    # 4.查看root目录,可以发现~/mysql/data目录已经自动创建好了
    ls -l mysql
    # 结果:
    总用量 4
    drwxr-xr-x. 2 root    root   20 5月  19 15:11 conf
    drwxr-xr-x. 7 polkitd root 4096 5月  19 15:11 data
    drwxr-xr-x. 2 root    root   23 5月  19 15:11 init
    
    # 查看data目录,会发现里面有大量数据库数据,说明数据库完成了初始化
    ls -l data
    
    # 5.查看MySQL容器内数据
    # 5.1.进入MySQL
    docker exec -it mysql mysql -uroot -p123
    # 5.2.查看编码表
    show variables like "%char%";
    # 5.3.结果,发现编码是utf8mb4没有问题
    +--------------------------+--------------------------------+
    | Variable_name            | Value                          |
    +--------------------------+--------------------------------+
    | character_set_client     | utf8mb4                        |
    | character_set_connection | utf8mb4                        |
    | character_set_database   | utf8mb4                        |
    | character_set_filesystem | binary                         |
    | character_set_results    | utf8mb4                        |
    | character_set_server     | utf8mb4                        |
    | character_set_system     | utf8mb3                        |
    | character_sets_dir       | /usr/share/mysql-8.0/charsets/ |
    +--------------------------+--------------------------------+
    
    # 6.查看数据
    # 6.1.查看数据库
    show databases;
    # 结果,hmall是黑马商城数据库
    +--------------------+
    | Database           |
    +--------------------+
    | hmall              |
    | information_schema |
    | mysql              |
    | performance_schema |
    | sys                |
    +--------------------+
    5 rows in set (0.00 sec)
    # 6.2.切换到hmall数据库
    use hmall;
    # 6.3.查看表
    show tables;
    # 结果:
    +-----------------+
    | Tables_in_hmall |
    +-----------------+
    | address         |
    | cart            |
    | item            |
    | order           |
    | order_detail    |
    | order_logistics |
    | pay_order       |
    | user            |
    +-----------------+
    # 6.4.查看address表数据
    +----+---------+----------+--------+----------+-------------+---------------+-----------+------------+-------+
    | id | user_id | province | city   | town     | mobile      | street        | contact   | is_default | notes |
    +----+---------+----------+--------+----------+-------------+---------------+-----------+------------+-------+
    | 59 |       1 | 北京     | 北京   | 朝阳区    | 13900112222 | 金燕龙办公楼   | 李佳诚    | 0          | NULL  |
    | 60 |       1 | 北京     | 北京   | 朝阳区    | 13700221122 | 修正大厦       | 李佳红    | 0          | NULL  |
    | 61 |       1 | 上海     | 上海   | 浦东新区  | 13301212233 | 航头镇航头路   | 李佳星    | 1          | NULL  |
    | 63 |       1 | 广东     | 佛山   | 永春      | 13301212233 | 永春武馆       | 李晓龙    | 0          | NULL  |
    +----+---------+----------+--------+----------+-------------+---------------+-----------+------------+-------+
    4 rows in set (0.00 sec)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52
    • 53
    • 54
    • 55
    • 56
    • 57
    • 58
    • 59
    • 60
    • 61
    • 62
    • 63
    • 64
    • 65
    • 66
    • 67
    • 68
    • 69
    • 70
    • 71
    • 72
    • 73
    • 74
    • 75
    • 76
    • 77
    • 78
    • 79
    • 80
    • 81
    • 82
    • 83
    • 84
    • 85
    • 86
    • 87
    • 88
  • 相关阅读:
    Code For Better 谷歌开发者之声——Flutter - Google 开源的移动 UI 框架
    造车先做三蹦子-之二:自制数据集(5x5数据集)230102
    mysql 数据库操作 字符 时间类型
    使用 Scapy 分析网络包:Python 网络编程的利器
    .Net服务器性能监控,应用耗时统一监控平台
    MySQL笔记——索引
    CMake构建学习笔记16-使用VS进行CMake项目的开发
    sklearn混淆矩阵的计算和seaborn可视化
    容器环境注入Spring属性不一致却能生效
    C++,STL
  • 原文地址:https://blog.csdn.net/Blue_Pepsi_Cola/article/details/134189205