Docker Review - 使用docker volume数据卷实现容器内的数据与宿主机同步

本文介绍了Docker数据卷的基本操作,包括如何创建数据卷、查看数据卷信息,并演示了如何挂载主机目录作为数据卷,实现容器与主机之间的数据同步。通过实例展示了在容器内部创建文件后,主机对应目录能即时看到该文件,验证了数据卷的同步效果。
摘要由CSDN通过智能技术生成

在这里插入图片描述


Pre

数据卷 是一个可供一个或多个容器使用的特殊目录,它绕过 UFS,可以提供很多有用的特性:

  • 数据卷 可以在容器之间共享和重用
  • 对 数据卷 的修改会立马生效
  • 对 数据卷 的更新,不会影响镜像
  • 数据卷 默认会一直存在,即使容器被删除

数据卷 的使用,类似于 Linux 下对目录或文件进行 mount,镜像中的被指定为挂载点的目录中的文件会复制到数据卷中(仅数据卷为空时会复制)。

在这里插入图片描述


docker volume

https://docs.docker.com/engine/reference/commandline/volume_create/

在这里插入图片描述


基本操作

在这里插入图片描述
在这里插入图片描述

# 创建数据卷
[root@VM-0-7-centos ~]# docker volume create artisan
artisan

#  查看所有的 数据卷
[root@VM-0-7-centos ~]# docker volume ls
DRIVER    VOLUME NAME
local     artisan
[root@VM-0-7-centos ~]#  查看指定 数据卷 的信息
[root@VM-0-7-centos ~]# docker volume inspect artisan
[
    {
        "CreatedAt": "2021-10-06T23:42:22+08:00",
        "Driver": "local",
        "Labels": {},
        "Mountpoint": "/var/lib/docker/volumes/artisan/_data",
        "Name": "artisan",
        "Options": {},
        "Scope": "local"
    }
]
[root@VM-0-7-centos ~]#
[root@VM-0-7-centos ~]#

在这里插入图片描述


挂载一个主机目录作为数据卷

步骤

  1. 在主机的 /root 目录下新建一个文件夹 artisan
  2. 命令 docker run -it -v 主机目录: 容器内目录
  3. 将主机上的 /root 文件夹下面的artisan的文件夹与容器内的home文件夹绑定
[root@VM-0-7-centos ~]# pwd
/root
[root@VM-0-7-centos ~]#
[root@VM-0-7-centos ~]#
[root@VM-0-7-centos ~]#
[root@VM-0-7-centos ~]#
[root@VM-0-7-centos ~]#
[root@VM-0-7-centos ~]# mkdir artisan
[root@VM-0-7-centos ~]#
[root@VM-0-7-centos ~]# 
[root@VM-0-7-centos ~]# docker run -it -v /root/artisan:/home centos /bin/bash
[root@b7424d27ae0f /]#
[root@b7424d27ae0f /]#
[root@b7424d27ae0f /]#   容器内的 home 文件夹
[root@b7424d27ae0f /]# cd /home
[root@b7424d27ae0f home]# ls
[root@b7424d27ae0f home]#
[root@b7424d27ae0f home]#
[root@b7424d27ae0f home]#


# 切到宿主机上,/root/artisan目录 

[root@VM-0-7-centos ~]# cd /root/artisan/
[root@VM-0-7-centos artisan]# ll
total 0
[root@VM-0-7-centos artisan]#
[root@VM-0-7-centos artisan]# touch artisan.log
[root@VM-0-7-centos artisan]#



# 切到容器内,切到映射的/home目录下 ,发现已经同步了 

[root@b7424d27ae0f home]#
[root@b7424d27ae0f home]# ls
artisan.log
[root@b7424d27ae0f home]#
[root@b7424d27ae0f home]#

现在,在容器内的 home 文件夹下面创建一个artisan.log文件 ,然后在主机的/root/artisan文件夹下面查看一下是否有artisan.log文件, 容器内的数据与主机实现了同步。

容器内创建个文件,宿主机目录下也有相同的文件

在这里插入图片描述

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小小工匠

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值