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

Docker 容器与数据卷

时间:2024-09-10 13:15:13浏览次数:9  
标签:tmp 容器 -- 目录 privileged Docker 数据 docker

上一篇启动 registry 的时候,用了 -v 和--privileged 参数,本文就讲解这两个参数的含义

privileged 参数

在 CentOS7 中,安全模块会比之前系统版本加强,不安全的行为会先禁止,而目录挂载的情况被默认为不安全的行为,因此我们在启动私服的时候,可能会被禁止,报错 cannot open directory .: Permission denied

在 SELinux 里挂载目录是的被禁止的,如果要开启,一般使用 --privileged=true 命令,扩大容器的权限解决挂载目录没有权限的问题。使用该参数,container 内的 root 拥有真正的 root 权限。否则,container 内的 root 只是外部的一个普通用户权限。

容器卷

Docker 容器产生的数据,如果不备份,那么当容器实例删除后,容器内的数据自然也就没有了。

之前用的 -v 参数,就是配置容器卷的(volume,简写为 v)。

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

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

有点类似 Redis 里面的 rdb 和 aof 文件,将容器内的数据保存进宿主机的磁盘中。

卷的特点:

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

实践

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

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

默认情况,仓库被创建在容器的 /var/lib/registry​,建议自行用容器卷映射。

例如启动一个 Ubuntu,并创建一个 txt 文件:

$ docker run -it --privileged=true -v /tmp/host_data:/tmp/docker_data --name=u1 ubuntu
$ cd /tmp/docker_data/
$ touch dockerin.txt

如果目录不存在,Docker 会自动创建

然后回到宿主机,可以看到也有文件:

$ ls /tmp/host_data/
dockerin.txt

即使容器 stop 了,宿主机修改文件,容器重启后也会同步数据。

除此之外,也可以用 inspect 命令,查看挂载是否成功:

$ docker ps
CONTAINER ID   IMAGE      COMMAND   CREATED       STATUS          PORTS     NAMES
9bd7aa9d30cd   ubuntu     "bash"    3 minutes ago  Up 3 minutes              u1

$ docker inspect 9bd7aa9d30cd
.............
"Mounts": [
            {
                "Type": "bind",
                "Source": "/tmp/host_data",
                "Destination": "/tmp/docker_data",
                "Mode": "",
                "RW": true,
                "Propagation": "rprivate"
            }
        ],
.................

随着后续深入的学习,-v 可以配置多个目录共享,例如一个是数据目录,一个是日志目录,一个是配置文件目录等。

读写规则映射

使用了-v 参数后,默认数据是共享的,也就是支持读写(read 和 write,简写为 rw),完整的命令是这样,在容器内目录后面有个 rw:

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

而有时候需要配置只读或者只写,也是可以的。例如设置容器只能读取:

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

这里设置了 ro,也就是 read only,只能读不能写

容器卷之间的继承和共享

有时候可能会有多个容器都使用一个宿主机的目录,此时就可以用继承的方式来完成共享。

在实践之前,可以先删掉所有的容器,方便观察。新建一个 Ubuntu:

$ docker run -it --privileged=true -v /mydocker/u:/tmp --name u1 ubuntu
$ cd /tmp
$ touch u1_data.txt

此时我们想要建立一个和 u1,同样读写规则的 ubuntu,就可以用继承了。命令格式:

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

该容器和 u1 是共享目录的:

$ docker run -it --privileged=true --volumes-from u1 --name u2 ubuntu
$ cd /tmp
$ ls
u1_data.txt

两个容器可以通过该目录来共享数据

(完)

标签:tmp,容器,--,目录,privileged,Docker,数据,docker
From: https://www.cnblogs.com/PeterJXL/p/18406198

相关文章

  • 通过特征幅度正则化,增强少数据情况下的细粒度识别精度
    原论文《EnhancingFine-GrainedVisualRecognitionintheLow-DataRegimeThroughFeatureMagnitudeRegularization》一.研究背景1.研究问题:这篇文章要解决的问题是细粒度图像识别(FGVR)在数据有限的情况下如何进行训练。由于类别之间的细微差异可能难以区分,尤其是在存......
  • Springboot宠物领养系统0e60o(程序+源码+数据库+调试部署+开发环境)
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容一、项目背景与意义随着社会的进步和人们生活水平的提高,宠物已成为许多家庭的重要成员。然而,流浪宠物问题日益严重,不仅影响城市环境,也威胁着宠物的......
  • Springboot超市商品销售管理系统pbo52(程序+源码+数据库+调试部署+开发环境)
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容一、项目背景与意义随着超市行业的蓬勃发展,商品种类与数量不断增加,传统的手工管理模式已难以适应高效、精准的商品销售管理需求。为了提高超市运营......
  • Springboot车辆信息管理系统v3564--程序+源码+数据库+调试部署+开发环境
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容一、研究背景与意义随着汽车保有量的快速增长,车辆信息管理成为了一个复杂而重要的任务。无论是政府机构、企事业单位还是个人车主,都面临着车辆信息......
  • Springboot城乡客运服务系统7y7y1--(程序+源码+数据库+调试部署+开发环境)
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容一、课题名称城乡客运服务系统设计与实现二、研究背景与意义随着城乡一体化进程的加速,城乡之间的交通联系日益紧密,客运需求持续增长。然而,传统的......
  • ETL数据集成丨MySQL到MySQL的数据迁移实践
    前言MySQL数据迁移至另一MySQL数据库的过程,不仅是数据复制或移动的操作那么简单,它还涉及到一系列策略性考量和技术优化,旨在实现数据的高效、安全传输,以及确保目标系统的高性能运行。其深远意义在于为企业的数字化转型提供强有力的数据支撑,确保业务连续性与竞争力。ETLCloud作为......
  • 中国智能网联汽车消费行为调查数据
    智能网联汽车是指利用车载传感器、控制器、执行器、通信装置等,实现环境感知、智能决策和/或自动控制、协同控制、信息交互等功能的汽车的总称。近年来,国务院、工信部、公安部、交通运输部等多部门都陆续印发了规范、引导、规划智能网联汽车行业的发展政策,内容涉及智能......
  • 中国柔性屏行业数据分析:
    22.83%消费者认为柔性屏将会取代刚性屏柔性屏行业发展迅速,市场规模不断扩大。柔性屏具有重量轻、可弯曲、对比度高、功耗低、体积小等特点,被广泛应用于消费电子、智能可穿戴设备、汽车电子等领域。目前,中国柔性屏在智能手机、平板电脑、可穿戴设备等方面应用较多。生产过......
  • DolphinScheduler:大数据任务调度利器
    目录一、概述二、主要特性三、DolphinScheduler架构四、安装与配置1.环境准备2.安装步骤[单机模式]五、使用DolphinScheduler创建任务六、应用场景七、总结一、概述在大数据场景中,任务调度器是必不可少的工具,用于协调多个数据处理任务的执行顺序、调度时间......
  • 使用公钥通过ssh通道连接MYSQL数据库报错(server sent: publickey)
    使用公钥通过ssh连接MYSQL数据库报错Disconnected:Nosupportedauthenticationmethodsavailable(serversent:publickey)1、通过命令行查看服务器ssh配置文件sudovim/etc/ssh/sshd_config2、查看PubkeyAuthentication是否启用,PubkeyAuthenticationyes,表示服务......