首页 > 其他分享 >Docker容器数据卷

Docker容器数据卷

时间:2023-01-16 18:35:02浏览次数:45  
标签:容器 -- 数据 目录 privileged Docker true docker

Docker容器数据卷是什么?

一句话:有点类似我们Redis里面的rdb和aof文件,就是将docker容器内的数据保存进宿主机的磁盘中。

Docker容器数据卷能干什么?

将运用与运行的环境打包镜像,run后形成容器实例运行 ,但是我们对数据的要求希望是持久化

Docker容器产生的数据,如果不备份,那么当容器实例删除后,容器内的数据自然也就没有了。
为了能保存数据在docker中我们使用卷。

特点:
1:数据卷可在容器之间共享或重用数据
2:卷中的更改可以直接实时生效,爽
3:数据卷中的更改不会包含在镜像的更新中
4:数据卷的生命周期一直持续到没有容器使用它为止




运行一个带有容器卷存储功能的容器实例

 docker run -it --privileged=true -v /宿主机绝对路径目录:/容器内目录      镜像名

**:容器卷记得加入

--privileged=true

Docker挂载主机目录访问如果出现cannot open directory .: Permission denied
解决办法:在挂载目录后多加一个–privileged=true参数即可

如果是CentOS7安全模块会比之前系统版本加强,不安全的会先禁止,所以目录挂载的情况被默认为不安全的行为,
在SELinux里面挂载目录被禁止掉了额,如果要开启,我们一般使用–privileged=true命令,扩大容器的权限解决挂载目录没有权限的问题,也即
使用该参数,container内的root拥有真正的root权限,否则,container内的root只是外部的一个普通用户权限。

使用

 docker run -it --privileged=true -v /宿主机绝对路径目录:/容器内目录      镜像名
 //docker run -it --name myu3 --privileged=true -v /tmp/myHostData:/tmp/myDockerData ubuntu /bin/bash

查看数据卷是否挂载成功

docker inspect 容器ID

Docker容器数据卷_docker
测试:通过在宿主机挂在目录上新建文件,进入容器终端里边可以看到文件已经同步。

挂载成功,我们可以实现

  • 1 docker修改,主机同步获得
  • 2 主机修改,docker同步获得
  • 3 docker容器stop,主机修改,docker容器重启数据自动同步。

上述命令默认是读写的

 docker run -it --privileged=true -v /宿主机绝对路径目录:/容器内目录:rw      镜像名
//  默认同上案例,默认就是rw
//容器目录:ro 镜像名               此时容器自己只能读取不能写 ,ro = read only

卷的继承和共享

容器2继承容器1的卷规则

docker run -it  --privileged=true --volumes-from 父类  --name u2 ubuntu bash

即使停止容器1,容器2也不会受到影响。

安装软件切记加容器数据卷,否则容器误删之后数据全都会丢失。

标签:容器,--,数据,目录,privileged,Docker,true,docker
From: https://blog.51cto.com/u_14452299/6010725

相关文章

  • Redis 缓存和 MySQL 如何实现数据一致性
    需求起因在高并发的业务场景下,数据库大多数情况都是用户并发访问最薄弱的环节。所以,就需要使用redis做一个缓冲操作,让请求先访问到redis,而不是直接访问MySQL等数据库。......
  • docker容器服务archery迁移
    1.容器镜像迁移将Docker容器迁移到另外一台服务器上,最常用的方法是迁移容器关联到的镜像。对于必须迁移的容器,首先使用dockercommit命令将其保存为Docker镜像。docker......
  • Docker数据目录迁移解决方案
    场景在docker的使用中随着下载镜像越来越多,构建镜像、运行容器越来越多,数据目录必然会逐渐增大;当所有docker镜像、容器对磁盘的使用达到上限时,就需要对数据目录进行迁移......
  • 【Java】Java连接Mysql数据库的demo示例
    【Java】Java连接Mysql数据库的demo示例1.安装mysql数据库2.下载java-mysql-connector.jar包3.完成java配置4.写java代码运行测试1.安装mysql数据库这里不多重复,我主要讲......
  • 【开发思考】约束是在数据库中定义还是在业务层中实现?
    [1]现状  首先,数据库的约束有:  ·主键​​primarykey​​​  ·外键​​foreignkey​​  ·非空​​notnull​​  ·默认​​default​​  ·唯......
  • 【BERT-多标签文本分类实战】之六——数据加载与模型代码
    ·请参考本系列目录:​​【BERT-多标签文本分类实战】之一——实战项目总览​​·下载本实战项目资源:>=点击此处=<  前5篇文章中,介绍了实战项目的前置知识,下面正式介绍项......
  • 【深度学习】pytorch使用tensorboard可视化实验数据
    [1]可视化界面  先上效果图:[2]使用教程[2.1]安装pytorch和tensorboard  输入命令:pipinstalltorchpipinstalltensorboard[2.2]在代码中使用write  代码dem......
  • 【微信小程序】页面返回且带回数据
    一、回退上一级页面beforePage  返回页面同时需要刷新数据varpages=getCurrentPages();//当前页面varbeforePage=pages[pages.length-2];//前一页beforePage.o......
  • QT保存(图像/字符)数据到本地为文件
    功能一可以保存图像数据到本地为JPG/PNG格式;并且文件名为日期时间。函数实现boolsave_image(QImageimageData,QStringcurTime,QStringsavePath){//图片保......
  • Docker迁移默认的/var/lib/docker目录
    Docker迁移默认的/var/lib/docker目录发布于2022-06-1018:41:30阅读 5970 安装完Docker后,默认存储路径在/var/lib/docker目录,如果服务器挂载的硬盘不是根目......