Docker本地目录挂载的实现步骤

 更新时间:2024年02月28日 11:35:51   作者:boy快快长大  
本文主要介绍了Docker本地目录挂载的实现步骤

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

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

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

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

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

挂载信息

在这里插入图片描述

查看数据卷

在这里插入图片描述

查看MySQL数据卷挂载在宿主机的位置,但是我们没有设置数据卷,所以是乱码

在这里插入图片描述

mysql的重要数据都在宿主机中

在这里插入图片描述

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

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

# 挂载本地目录
-v 本地目录:容器内目录
# 挂载本地文件
-v 本地文件:容器内文件

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

基于宿主机目录实现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)

到此这篇关于Docker本地目录挂载的实现步骤的文章就介绍到这了,更多相关Docker本地目录挂载内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家! 

相关文章

  • 一文教你如何通过 Docker 快速搭建各种测试环境

    一文教你如何通过 Docker 快速搭建各种测试环境

    这篇文章主要介绍了一文教你如何通过 Docker 快速搭建各种测试环境,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-07-07
  • 替换docker容器中的一个文件的实现

    替换docker容器中的一个文件的实现

    在某些情况下,我们可能确实需要更新容器内的文件,本文主要介绍了替换docker容器中的一个文件的实现,具有一定的参考价值,感兴趣的可以了解一下
    2024-06-06
  • Docker中镜像构建文件Dockerfile与相关命令的详细介绍

    Docker中镜像构建文件Dockerfile与相关命令的详细介绍

    这篇文章主要介绍了Docker中镜像构建文件Dockerfile与相关命令的相关资料,文中介绍的很详细,相信对大家具有一定的参考价值,有需要的朋友们下面来一起看看吧。
    2017-02-02
  • Docker 安装 Consul单机模式的操作方法

    Docker 安装 Consul单机模式的操作方法

    这篇文章主要介绍了Docker 安装 Consul单机模式,本文给大家讲解的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-04-04
  • Docker service命令详解(小结)

    Docker service命令详解(小结)

    这篇文章主要介绍了Docker service命令详解(小结),小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-08-08
  • centos7搭建docker私人仓库的方法(kubernetes)

    centos7搭建docker私人仓库的方法(kubernetes)

    这篇文章主要介绍了centos7搭建docker私人仓库的方法(kubernetes),小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-03-03
  • 利用 Docker 构建简单的 java 开发编译环境的方法详解

    利用 Docker 构建简单的 java 开发编译环境的方法详解

    这篇文章主要介绍了利用 Docker 构建简单的 java 开发编译环境的相关知识,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-11-11
  • 容器Docker入门详解

    容器Docker入门详解

    这篇文章主要介绍了容器Docker入门详解,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2019-01-01
  • Docker开放2375端口实现远程访问的操作方法

    Docker开放2375端口实现远程访问的操作方法

    因为IDEA集成docker环境,实质上是通过远程访问的形式,进行连接,因此需要开启Docker的2375端口的远程访问权限,这篇文章主要介绍了Docker开放2375端口实现远程访问的操作方法,需要的朋友可以参考下
    2024-05-05
  • Docker镜像拉取报错:Error response from daemon: Get https://registry-1.docker.io/v2/的问题解决

    Docker镜像拉取报错:Error response from daemon: 

    这篇文章主要介绍了Docker镜像拉取报错:Error response from daemon: Get https://registry-1.docker.io/v2/的问题解决,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2023-07-07

最新评论