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

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

image.png

Pre


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

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


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


docker volume


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


fd8c86768a65403992a69be7ce8ef3b1.png


基本操作


2f10d3ec906f4032ae9249c393a93f82.png

8b78ce361b2340238d153c4921111c95.png

# 创建数据卷
[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 主机目录: 容器内目录
  1. 将主机上的 /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文件, 容器内的数据与主机实现了同步。

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

ac7ac9d2bab64bdb9a6d25100d0cf72b.png



相关文章
|
2天前
|
存储 Kubernetes Docker
Kubernetes(K8S)集群管理Docker容器(概念篇)
Kubernetes(K8S)集群管理Docker容器(概念篇)
|
2天前
|
存储 Ubuntu 安全
Docker容器常用命令
Docker容器常用命令
10 1
|
8天前
|
存储 运维 监控
构建高效稳定的Docker容器监控体系
【4月更文挑战第18天】 在现代微服务架构中,Docker容器已成为部署和运行应用的标准环境。随之而来的挑战是如何有效监控这些容器的性能与健康状况,确保系统的稳定性和可靠性。本文将探讨构建一个高效稳定的Docker容器监控体系的关键技术和方法,包括日志管理、性能指标收集以及异常检测机制,旨在为运维人员提供实用的指导和建议。
13 0
|
10天前
|
程序员 索引 Python
06-python数据容器-set(集合)入门基础操作
06-python数据容器-set(集合)入门基础操作
|
10天前
|
索引 容器
06-数据容器str(字符串)-字符串的下标索引/字符串无法修改/查找字符串下标初始值/字符串的替换/字符串的分割/字符串去除前后空格/统计字符串的数量/字符串的循环遍历/对字符串进行分割
06-数据容器str(字符串)-字符串的下标索引/字符串无法修改/查找字符串下标初始值/字符串的替换/字符串的分割/字符串去除前后空格/统计字符串的数量/字符串的循环遍历/对字符串进行分割
|
10天前
|
索引 容器
06-python数据容器-list列表定义/list的10个常用操作/列表的遍历/使用列表取出偶数
06-python数据容器-list列表定义/list的10个常用操作/列表的遍历/使用列表取出偶数
|
17天前
|
关系型数据库 MySQL Linux
docke数据卷容器
docke数据卷容器
11 0
|
17天前
|
Linux Docker 容器
docker 容器常用命令
docker 容器常用命令
13 0
|
17天前
|
Linux Shell 虚拟化
linux 部署docker容器虚拟化平台(二)--------docker 镜像制作方法
linux 部署docker容器虚拟化平台(二)--------docker 镜像制作方法
28 0
|
17天前
|
存储 Linux Shell
centos 部署docker容器 安装 、基本使用方法(一)
centos 部署docker容器 安装 、基本使用方法(一)
32 0