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



目录
打赏
0
0
0
0
99
分享
相关文章
docker容器为啥会开机自启动
通过配置适当的重启策略,Docker容器可以在主机系统重启后自动启动。这对于保持关键服务的高可用性和自动恢复能力非常有用。选择适合的重启策略(如 `always`或 `unless-stopped`),可以确保应用程序在各种情况下保持运行。理解并配置这些策略是确保Docker容器化应用可靠性的关键。
287 93
Docker+consul容器服务的更新与发现
通过本文的介绍,我们详细探讨了如何结合Docker和Consul来实现容器服务的更新与发现。通过Consul的服务注册和发现功能,可以高效地管理和监控容器化服务,确保系统的高可用性和可扩展性。希望本文能帮助您在实际项目中更好地应用Docker和Consul,提高系统的可靠性和管理效率。
65 23
ubuntu22 编译安装docker,和docker容器方式安装 deepseek
本脚本适用于Ubuntu 22.04,主要功能包括编译安装Docker和安装DeepSeek模型。首先通过Apt源配置安装Docker,确保网络稳定(建议使用VPN)。接着下载并配置Docker二进制文件,创建Docker用户组并设置守护进程。随后拉取Debian 12镜像,安装系统必备工具,配置Ollama模型管理器,并最终部署和运行DeepSeek模型,提供API接口进行交互测试。
344 15
《docker基础篇:3.Docker常用命令》包括帮助启动类命令、镜像命令、有镜像才能创建容器,这是根本前提(下载一个CentOS或者ubuntu镜像演示)、容器命令、小总结
《docker基础篇:3.Docker常用命令》包括帮助启动类命令、镜像命令、有镜像才能创建容器,这是根本前提(下载一个CentOS或者ubuntu镜像演示)、容器命令、小总结
218 6
《docker基础篇:3.Docker常用命令》包括帮助启动类命令、镜像命令、有镜像才能创建容器,这是根本前提(下载一个CentOS或者ubuntu镜像演示)、容器命令、小总结
docker容器为啥会开机自启动
通过配置适当的重启策略,Docker容器可以在主机系统重启后自动启动。这对于保持关键服务的高可用性和自动恢复能力非常有用。选择适合的重启策略(如 `always`或 `unless-stopped`),可以确保应用程序在各种情况下保持运行。理解并配置这些策略是确保Docker容器化应用可靠性的关键。
78 17
《docker基础篇:1.Docker简介》,包括Docker是什么、容器与虚拟机比较、能干嘛、去哪下
《docker基础篇:1.Docker简介》,包括Docker是什么、容器与虚拟机比较、能干嘛、去哪下
135 12
入门级容器技术解析:Docker和K8s的区别与关系
本文介绍了容器技术的发展历程及其重要组成部分Docker和Kubernetes。从传统物理机到虚拟机,再到容器化,每一步都旨在更高效地利用服务器资源并简化应用部署。容器技术通过隔离环境、减少依赖冲突和提高可移植性,解决了传统部署方式中的诸多问题。Docker作为容器化平台,专注于创建和管理容器;而Kubernetes则是一个强大的容器编排系统,用于自动化部署、扩展和管理容器化应用。两者相辅相成,共同推动了现代云原生应用的快速发展。
324 11
课时5:阿里云容器服务:最原生的集成Docker和云服务
阿里云容器服务以服务化形式构建容器基础设施,大幅提升开发效率,简化应用部署流程。通过Docker容器和DevOps工具(如Jenkins),实现自动化部署与迭代,优化企业内部复杂部署问题。该服务支持GPU调度、混合云架构无缝迁移,并与阿里云产品体系无缝集成,提供安全防护、网络负载均衡等多重功能支持。凭借微服务架构,帮助企业突破业务瓶颈,提高资源利用率,轻松应对海量流量。
课时5:阿里云容器服务:最原生的集成Docker和云服务
《docker高级篇(大厂进阶):7.Docker容器监控之CAdvisor+InfluxDB+Granfana》包括:原生命令、是什么、compose容器编排,一套带走
《docker高级篇(大厂进阶):7.Docker容器监控之CAdvisor+InfluxDB+Granfana》包括:原生命令、是什么、compose容器编排,一套带走
341 78
在Docker容器中运行打包好的应用程序
在Docker容器中运行打包好的应用程序