首页 > 其他分享 >docker数据持久存储基础

docker数据持久存储基础

时间:2022-10-22 12:57:29浏览次数:88  
标签:10.0 存储 持久 jixinjian 0.119 volume docker root

1、前言
容器适用无状态的应用,容器运行时的数据分为两部分:镜像层和容器层。镜像层的数据是永久存储的,而容器的数据随着容器的停止也就消失。
对于有状态的应用来说,没有持久化的数据不能支撑应用的正常运行,常用两种方式为有状态的应用提供持久化的数据存储:
01、Volumes
02、bind mount

备注:应用的状态就是应用组件完成他们的工作(即执行任务)时所需数据。

2、Volume
卷存储在由Docker管理的主机文件系统的一部分中(Linux上的/var/lib/docker/volumes/)。非Docker进程不应该修改这部分文件系统。卷是在Docker中保留数据的最佳方式。
volume的使用场景:
01.在多个容器之间共享数据
02.对主机的目录结构不清楚的
03.当您想要将容器的数据存储在远程主机或云提供商上而不是本地时
04.当您需要备份,还原或将数据从一台Docker主机迁移到另一台时,卷是更好的选择。您可以使用卷停止容器,然后备份卷的目录(例如/var/lib/docker/volumes/

3、创建volume

[[email protected] ~]# docker volume create  jixinjian
jixinjian
[[email protected] ~]# 

4、查看volume

[[email protected] ~]# docker volume ls 
DRIVER    VOLUME NAME
local     jixinjian

[[email protected] ~]# docker volume inspect  jixinjian 
[
    {
        "CreatedAt": "2022-10-22T12:17:03+08:00",
        "Driver": "local",
        "Labels": {},
        "Mountpoint": "/var/lib/docker/volumes/jixinjian/_data",
        "Name": "jixinjian",
        "Options": {},
        "Scope": "local"
    }
]

5、删除volume

[[email protected] ~]# docker volume rm jixinjian 
jixinjian
[[email protected] ~]# docker volume  ls 
DRIVER    VOLUME NAME

6、使用volume、验证效果

[[email protected] ~]# docker volume ls 
DRIVER    VOLUME NAME
local     jixinjian

[email protected] ~]# docker run  -d  -it   --name Volume_test -v jixinjian:/tmp  centos 
9a39034fd2a8d82011f20f8161c712d1ecd01d72cca240f38e42ae7f8f5e13ab
[[email protected] ~]# 
[[email protected] ~]# 
[[email protected] ~]# docker ps 
CONTAINER ID   IMAGE     COMMAND       CREATED         STATUS         PORTS     NAMES
9a39034fd2a8   centos    "/bin/bash"   3 seconds ago   Up 2 seconds             Volume_test
[[email protected] ~]# docker exec -it 9a39034fd2a8  /bin/bash 
[root@9a39034fd2a8 /]# echo "volume" >/tmp/volume.txt
[root@9a39034fd2a8 /]# exit 
exit
[[email protected] ~]# docker stop 9a39034fd2a8    #停止容器
9a39034fd2a8
[[email protected] ~]# docker start  9a39034fd2a8  #再启动容器
9a39034fd2a8
[[email protected] ~]# docker exec -it 9a39034fd2a8  /bin/bash 
[root@9a39034fd2a8 /]# ls -l  /tmp/    #可以看到数据还存在
total 20
-rw-r--r-- 1 root root   7 Oct 22 04:37 Volume_test
-rwx------ 1 root root 701 Sep 15  2021 ks-script-4luisyla
-rwx------ 1 root root 671 Sep 15  2021 ks-script-o23i7rc2
-rwx------ 1 root root 291 Sep 15  2021 ks-script-x6ei4wuu
-rw-r--r-- 1 root root   7 Oct 22 04:34 volume.txt

标签:10.0,存储,持久,jixinjian,0.119,volume,docker,root
From: https://www.cnblogs.com/w1sh/p/16815893.html

相关文章

  • docker安装mysql(win10已安装Docker Desktop)
    参考文档:我的学习能力::MySQL5.7参考手册::2.5.7.1使用Docker部署MySQL服务器的基本步骤如图所示: 下载MySQL社区版映像,运行以下命令: dockerpullmysql/......
  • 如何创建和使用Docker中的NFS存储卷
    Docker卷是为Docker容器设置持久存储的首选机制。卷是安装在容器内的主机文件系统上的现有目录。它们可以从容器和主机系统访问。Docker还允许用户挂载通过NFS远程文件......
  • Kubernetes---Volume存储卷
    一、Volume存储卷简介Volume将容器中的指定数据和容器解耦,并将数据存储到指定的位置,不同的存储卷功能不一样,如果是基于网络存储的存储卷可以可实现容器间的数据共享和......
  • linux docker容器安装nacos
    1、添加nacos数据源createdatabasecloud_nacos;usecloud_nacos;/**Copyright1999-2018AlibabaGroupHoldingLtd.**LicensedundertheApacheLicense......
  • 1_docker安装软件
    1_docker安装软件docker安装mysql流程Ubuntu使用Docker镜像安装MySQL5.7_evak_的博客-CSDN博客curl-fsSLhttps://get.docker.com|bash-sdocker--mirrorA......
  • docker安装rabbitmq(win10已安装Docker Desktop)
    打开rabbitmq官方网站:DownloadingandInstallingRabbitMQ—RabbitMQ如图所示: 在WindowsPowerShell中运行:dockerrun-it--rm--namerabbitmq-p5672:5672-p......
  • 分布式指存储高可用
    @目录一、存储高可用的理解二、主备方案三、主从方案四、主备倒换五、主主方案六、主从集群[一主多从]七、分散式集群[多主多从]八、总结一、存储高可用的理解概念......
  • Docker
    Docker1、docker简介​Docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux或Windows操作系统......
  • 11-11-分布式架构数据存储设计与实践 (下)_ev
                        在old2秒后才有机会移入new的                       ......
  • Docker 基础详解
     一、docker安装(ubuntu22.04)配置阿里源sudosed-i-r's#http://(archive|security).ubuntu.com#https://mirrors.aliyun.com#g'/etc/apt/sources.list&&sudoapt-......