首页 > 其他分享 >docker实战教程(十一):容器数据卷

docker实战教程(十一):容器数据卷

时间:2022-10-02 14:36:01浏览次数:48  
标签:容器 教程 -- 宿主机 privileged docker 目录

--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 /宿主机绝对路径目录:/容器内目录 镜像名

一句话:有点类似我们redis里面的rdb和aof文件,将docker容器内的数据保存进宿主机的磁盘中,运行一个带有容器卷存储功能的容器实例

卷就是目录或文件,存在于一个或多个容器中,由docker挂载到容器,但不属于联合文件系统,因此能绕过Union File System提供一些用于持续存储或共享数据的特性:

卷的设计目的就是数据的持久化,完全独立于容器的生存周期,因此docker不会在容器删除时删除其挂载的数据卷

docker实战教程(十一):容器数据卷_绝对路径

容器数据卷能干什么

将运用与运行的环境打包镜像,run后形成容器实例运行,但是我们对数据的要求希望是持有化的
docker容器产生的数据,如果不备份,那么当容器实例删除后,容器内的数据自然也就没有了。为了能保存数据在docker中我们使用卷

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

数据卷案例1:宿主机vs容器之间映射添加容器卷

#命令
docker run -it --privileged=true -v /宿主机绝对路径目录: /容器内目录 镜像名
#查看数据卷是否挂载成功
docker inspect 容器ID
#容器和宿主机之间数据共享

docker实战教程(十一):容器数据卷_数据_02


运行​​docker inspect 容器ID​​,查看数据卷是否挂载成功

docker实战教程(十一):容器数据卷_绝对路径_03


假设容器停了,在宿主机上创建的文件,可以同步到容器

docker实战教程(十一):容器数据卷_docker_04

数据卷案例2:读写规则映射添加说明

默认同上案例,默认就是rw

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

只读:容器实例内部被限制,只能读取不能写。此时如果宿主机写入内容,可以同步给容器内,容器可以读取到。限制只限制容器

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

docker实战教程(十一):容器数据卷_数据_05

数据卷案例3:卷的继承和共享

容器1完成和宿主机的映射

docker实战教程(十一):容器数据卷_数据_06

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

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

docker实战教程(十一):容器数据卷_数据_07

docker实战教程(十一):容器数据卷_数据_08

容器1暂停,容器2仍然可以实时共享宿主机上新增的文件,同样,容器2上新增的文件,仍然可以实时共享到宿主机上。如果容器1重启,这些新建的文件都可以实时共享给容器1

docker实战教程(十一):容器数据卷_绝对路径_09



标签:容器,教程,--,宿主机,privileged,docker,目录
From: https://blog.51cto.com/u_14629396/5729311

相关文章

  • 容器知识
    queue有很多//////////////////stack 0,//usedefaultstacksize创建线程createThread的第二个参数 vector向量(数组随机修改插入删除到尾......
  • 如何在 macOS 上使用 iMovie 进行视频剪辑教程 All In One
    如何在macOS上使用iMovie进行视频剪辑教程AllInOne视频剪辑/视频后期处理https://support.apple.com/zh-cn/HT212059https://support.apple.com/zh-cn/guid......
  • #kaldi安装教程
    #kaldi安装教程 https://blog.csdn.net/shengwei_1995/article/details/117248844?ops_request_misc=&request_id=&biz_id=102&utm_term=Configuring%20KALDI%20to%20us......
  • Creo 9.0软件安装包和安装教程
    Creo9.0软件简介:PTCCreo9.0是一款强大的三维建模软件,该软件整合了Pro/Engineer的参数化技术、CoCreate的直接建模技术和ProductView的三维可视化技术的新型CAD设计软件包......
  • Docker下,五分钟极速体验机器学习
    欢迎访问我的GitHub这里分类和汇总了欣宸的全部原创(含配套源码):https://github.com/zq2599/blog_demos看标题是否很激动,对机器学习很感兴趣,但是搭建环境和运行demo总......
  • docker启动rabbitmq
    运行dockersystemctlstartdocker查看进程ps-ef|grepdocker#运行rabbitdockerrun-d--hostnamemy-rabbit--namerabbit-p15672:15672-p5672:5672r......
  • docker常用命令
    启动dockersystemctlstartdockerps-ef|grepdocker启动mysqldockerrun--namemysql-v$PWD/conf:/etc/mysql/conf.d-v$PWD/logs:/logs-v$PWD/data:/var/li......
  • Docker部署服务器性能实时监测工具WGCLOUD服务端server
    1.首先下载WGCLOUD(Linux版本)我们在本文里使用docker部署server端进行说明,agent不需要docker来部署​官网下载地址:​​http://www.wgstart.com/​​ 2.解压到/wgcloudDocker......
  • XXL-JOB 服务器定时调度管理器使用教程
    简介相对于简单的spring支持的@corn,xxl-job支持动态修改等操作,由于有一个页面管理,方面业务人员操作相关功能开箱即用demo源代码https://github.com/xuxueli/xxl-jo......
  • .NET教程 - 日志 & 诊断 (Logs & diagnostics)
    更新记录转载请注明出处:2022年10月2日发布。2022年10月1日从笔记迁移到博客。日志(logging)日志的作用在应用程序中添加代码以记录正在发生,尤其是发生异常时以便......