Docker数据管理之三种方式- 数据卷(Volumes)- 挂载主机目录(Bind mounts)- 数据卷容器(Data Volume Containers)

这篇具有很好参考价值的文章主要介绍了Docker数据管理之三种方式- 数据卷(Volumes)- 挂载主机目录(Bind mounts)- 数据卷容器(Data Volume Containers)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

文章主人公:帅哥BUG😎

文章路人: 路人 🤨  路人 😛

😎:docker在容器中管理数据主要有三种方式哦~

🤨:  啊!,我记得docker在容器中管理数据主要方式是这两种吧 

- 数据卷(Volumes)
- 挂载主机目录(Bind mounts)
    
😛:  额,主要的方式是这两种?我怎么记得是这两种
数据卷 Data Volumes 
数据卷容器(Data Volume Containers )
😎:okok,你们说的都没有错
😎:本帅的第一位老师教我的时候
主要的方式是 数据卷和数据卷容器,这两种
哦对了 我还发布过数据卷和数据卷容器的文章 可以去看看
Docker之数据卷(Data Volumes)和数据卷容器(Data Volume Containers )_我敲BUG的博客-CSDN博客

😎:本帅的第二位 老师教我的时候是说

😎:docker在容器管理数据的方式是 数据卷和挂载主机目录 这两种 。

斯~ 额...  好吧其实都没有错 只是老师的习惯不一样吧  没有掌握另一种主要方式的你,好好看看吧!上内容!!!!!!!!!!

docker mounts,docker,容器,运维,linux,服务器


目录

前言:docker在容器中管理数据主要有三种方式:

- 数据卷(Volumes)

- 挂载主机目录(Bind mounts)

- 数据卷容器(Data Volume Containers)

 一.数据卷(Data Volumes)

 1.数据卷的使用

(1)创建数据卷 

(2).查看数据卷详细信息

(3).删除一个数据卷

2.挂载数据卷

二.挂载主机目录(Bind mounts)

三.数据卷容器(Data Volume Containers)

1.创建数据卷容器

2.挂载数据卷容器


前言:docker在容器中管理数据主要有三种方式:

- 数据卷(Volumes)

- 挂载主机目录(Bind mounts)

- 数据卷容器(Data Volume Containers)

 一.数据卷(Data Volumes)

📃为了很好的实现数据保存和数据共享,Docker提出了Volume这个概念,简单的说就是绕过默认的联合 文件系统,而以正常的文件或者目录的形式存在于宿主机上。又被称作数据卷。

📜数据卷 是一个可供一个或多个容器使用的特殊目录,它绕过 UFS
可以提供很多有用的特性:
  •    数据卷 可以在容器之间共享和重用
  •    对数据卷的修改会立马生效
  •    对数据卷的更新,不会影响镜像
  •    数据卷 默认会一直存在,即使容器被删除

 1.数据卷的使用

(1)创建数据卷 

📜创建数据卷命令:
docker volume create BUG
 
docker mounts,docker,容器,运维,linux,服务器
使用 docker volume ls 查看所有数据卷
注:指令解释 
docker: 只要是docker里面的东西,要执行指令的时候必须docker打头
volume: 数据卷的意思 
create:创建
整条下来就是:我要创建一个数据卷 它的名字是BUG

(2).查看数据卷详细信息

📜 查看数据卷详情命令:
docker volume inspect BUG
docker mounts,docker,容器,运维,linux,服务器

 划红线的是数据卷存放数据的路径 

docker mounts,docker,容器,运维,linux,服务器

注:指令解释
inspect:表示查看详细信息
整条下来就是 :查看数据卷BUG的详细信息

(3).删除一个数据卷

📜删除数据卷命令:
docker volume rm BUG
docker mounts,docker,容器,运维,linux,服务器

 使用 docker volume ls 查看所有数据卷  数据卷已经被删除了

注:指令解释
rm:表示删除
整条下来就是 :删除数据卷BUG
  数据卷 是被设计用来持久化数据的,它的生命周期独立于容器,Docker不会在容器被删除后自动 删除数据卷,并且也不存在垃圾回收这样的机制来处理没有任何容器引用的数据卷,无主的数据卷 可能会占据很多空间,所以要及时删除.  

2.挂载数据卷

想要容器使用数据卷那就让容器挂载数据卷把 

📃在用 docker run 命令的时候,使用 --mount 标记来将 数据卷 挂载到容器里。在一次 docker
run 中可以挂载多个 数据卷
📜挂载数据卷命令(在创建容器的时候挂载数据卷):
docker run -itd \
--name 容器名字 \
--mount source=数据卷名称,target=容器中的对应目录 \
镜像名称
注:指令解释

 \ :是换行的意思 (也可以不打 \ 但是代码会不美观)
run:的意思是创建并且运行并且进入的到容器里面去 (我们之前创建容器的时候

使用的是create  特别麻烦,给大家做个对比

docker mounts,docker,容器,运维,linux,服务器

 从创建到进入我们想要用到三步才能进入容器,比较麻烦

使用 run 创建容器,直接进入容器,省略了部分操作,

docker mounts,docker,容器,运维,linux,服务器

)

it:是两个参数,-i:interactive容器具有交互功能,-t:容器将提供伪终端

在-it 后面加了d是让容器后台运行的意思 

-- name:是给容器取个名字

--mount :表示进行挂载 

source= :指定容器要挂载的数据卷

target= :把数据卷挂载到容器中的这个目录或文件夹中

假设:target=/aa 我要把数据卷挂载到容器的aa文件夹或目录中 ,没有aa会自动帮你创建一个

centos:latest是即镜像名字:版本(或镜像ID),将使用指定镜像创建容器。另外,Docker会检查本地是否存在指定的镜像

docker mounts,docker,容器,运维,linux,服务器

docker run -it \
--name bb \
--mount source=BUG,target=/aa \
centos

整条下来就是:创建一个容器 bb 挂载数据卷 BUG ,把数据卷挂载到容器的aa文件夹中 基于centos 镜像进行创建

在容器中输入ls  进行查看 aa文件夹被创建好了 

docker mounts,docker,容器,运维,linux,服务器

cd 进入aa 文件夹  并且输出 Hello BUG 到 a.txt 里面去

输出命令 echo 'hello BUG'  > a.txt

docker mounts,docker,容器,运维,linux,服务器

(另外在开一个窗口,进入到数据卷的数据存放位置查看是否有a.txt)

先用 dockers volume inspect BUG  查看数据卷详情 获取到数据卷存放数据的路径

docker mounts,docker,容器,运维,linux,服务器

得到路径之后 我们cd 进入

ls 查看所有文件 发现有a.txt ,

我们使用cat 打开文件a.txt

欧克  看到了我们在容器中编辑的内容,bb容器挂载了数据卷BUG,实现了数据共享了(可以理解为文件夹之间的共享),数据卷可以被多个容器挂载

二.挂载主机目录(Bind mounts)

挂载主机目录,应该是挂载当中最简单的一种方法了

📜挂主机目录命令(在创建容器的时候挂载主机目录
docker run -itd \
--name 容器名字 \
--mount type=bind,source= 宿主机目录 ,target= 容器中的对应目录 \
镜像名称
 
注:指令解释
type=bind:表示挂载目录 
source=:指定你要给容器挂载的主机目录或文件夹
假设 source=/usr/local/java   那么意思就是我要把主机上的java文件夹共享给容器,这个文件夹主机没有的话要自己创建一个哦 使用 mkdir -p 进行多级创建 

 docker mounts,docker,容器,运维,linux,服务器

target= :把主机目录挂载到容器中的这个目录或文件夹中

假设:target=/aa 我要把主机目录挂载到容器的aa文件夹或目录中 ,没有aa会自动帮你创建一个 

挂载主机目录命令还有简单的方式

docker run -itd \
--name 容器名字 \
-v  宿主机目录: 容器中的对应目录 \
镜像名称
这个指令和上面的指令效果是一样的

-v :表示进行命令挂载

docker mounts,docker,容器,运维,linux,服务器

docker run -it \
--name cc \
--mount type=bind,source=/usr/local/java,target=/aa \
centos

整条下来就是:创建一个cc容器进行目录挂载,我要挂载java目录,把java目录挂载到容器的aa目录中 基于centos创建容器

 在容器中输入ls  进行查看 aa文件夹被创建好了 

docker mounts,docker,容器,运维,linux,服务器

cd 进入aa 文件夹  并且输出 Hello 目录 到 a.txt 里面去

输出命令 echo 'hello 目录'  > a.txt

docker mounts,docker,容器,运维,linux,服务器

(另外在开一个窗口,进入到主机的java中)

docker mounts,docker,容器,运维,linux,服务器

cd /usr/local/java  进入

ls 查看所有文件 发现有a.txt ,

我们使用cat 打开文件a.txt

欧克  看到了我们在容器中编辑的内容,bb容器挂载了主机目录java,实现了数据共享了(可以理解为文件夹之间的共享) 主机目录可以被多个容器挂载

三.数据卷容器(Data Volume Containers)

📃如果用户需要在多个容器之间共享一些持续更新的数据,最简单的方式是使用数据卷容器。

 数据卷容器也是一个容器,但是它的目的是专门提供数据卷给其他容器挂载。

就是说我这个数据卷容器里面的目录或者文件夹数据可以给其他的容器去使用

数据卷容器用的不是特别多,还是要看自己的需求

1.创建数据卷容器

📜创建数据卷容器命令
docker run -it --name 容器名称 -v 要共享出去的文件 centos
指令解释: 这个命令里面的 -v 的意思是 你要把容器里面的哪个文件夹共享出去
docker run -it --name c1 -v /aa centos
整条下来就是:创建一个c1数据卷容器,我要把c1中的aa文件夹(就算c1里面没有aa这个文件夹也会自动创建一个)共享出去,基于centos镜像创建
 
docker mounts,docker,容器,运维,linux,服务器
这个窗口先留着,我们另外在开一个窗口去挂载数据卷容器

2.挂载数据卷容器

📜挂载数据卷容器命令
docker run -it --name 容器名称 --volumes-from 数据卷容器名称 centos
指令解释:--vloume-from 表示数据卷容器来源
docker run -it --name c2 --volumes-from c1 centos
整条下来就是:我要创建一个容器c2 我要挂载的数据卷容器是c1(因为c1共享出来的文件夹是aa所以会在c2容器里面自动创建一个aa文件夹) 基于centos镜像创建
docker mounts,docker,容器,运维,linux,服务器
可以看到的是c2容器里面被创建了一个aa文件夹

cd 进入aa 文件夹  并且输出 Hello 目录 到 a.txt 里面去

输出命令 echo 'hello 数据卷容器'  > a.txt

docker mounts,docker,容器,运维,linux,服务器

我们回到c1的窗口查看以下是否有a.txt这个文件 并使用cat 打开文件

docker mounts,docker,容器,运维,linux,服务器

 欧克  看到了我们在容器c2中编辑的内容,c1数据卷容器也有,实现了容器和数据卷容器数据共享了(可以理解为文件夹之间的共享) 

😎:本章内容不多,你...学到了吗!觉得不错,记得一键三连哦~

docker mounts,docker,容器,运维,linux,服务器

🤨😛:

docker mounts,docker,容器,运维,linux,服务器文章来源地址https://www.toymoban.com/news/detail-753720.html

到了这里,关于Docker数据管理之三种方式- 数据卷(Volumes)- 挂载主机目录(Bind mounts)- 数据卷容器(Data Volume Containers)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Docker基本管理与网络以及数据管理

    Docker是一个go语言开发的应用容器引擎,运行容器里的应用。docker是用来管理容器和镜像的一种工具。 容器是在linux上本机运行,并与其他容器共享主机的内核,它运行的是一个独立的进程,不占用其他任何可执行文件的内存,非常轻量。 虚拟机运行的是一个完整的操作系统

    2024年02月07日
    浏览(43)
  • Docker数据卷和数据管理

    Docker 容器的数据放哪里呢? 本文带你理解如何在 Docker 内部以及容器之间管理数据。 数据卷(Data Volume) 数据卷的使用,类似于 Linux 下对目录或文件进行 mount 数据卷(Data Volume)是一个可供一个或多个容器使用的特殊目录,它绕过 UFS,可以提供很多有用的特性: 数据卷可以在容

    2024年01月16日
    浏览(47)
  • 【Docker】Docker学习⑤ - Docker数据管理

    参考:【Docker】Dokcer学习① - 简介 参考:【Docker】Docker学习② - Docker安装及基础命令介绍 参考:【Docker】Docker学习③ - Docker镜像管理 参考:【Docker】Docker学习④ - Docker镜像与制作 如果运行中的容器修改如果生成了新的数据或者修改了现有的一个已经存在的文件内容,那么新

    2024年01月23日
    浏览(41)
  • Docker(六)数据管理

    作者主页: 正函数的个人主页 文章收录专栏: Docker 欢迎大家点赞 👍 收藏 ⭐ 加关注哦! 这一章介绍如何在 Docker 内部以及容器之间管理数据,在容器中管理数据主要有两种方式: 数据卷(Volumes) 挂载主机目录 (Bind mounts) 数据卷 是一个可供一个或多个容器使用的特殊目录

    2024年01月21日
    浏览(40)
  • Docker 的数据管理

    绪论 管理 Docker 容器中数据主要有两种方式:数据卷(Data Volumes)和数据卷容器(DataVolumes Containers)。 1.数据卷 数据卷是一个供容器使用的特殊目录,位于容器中。可将宿主机的目录挂载到数据卷上,对数据卷的修改操作立刻可见,并且更新数据不会影响镜像,从而实现数

    2024年02月07日
    浏览(46)
  • Docker 数据管理

    1.数据卷 案例展示 2.数据卷容器 案例展示 1.概念 2.操作 1.基于现有镜像创建 2.基于本地模板创建 3.基于Dockerfile 创建 ①联合文件系统(UnionFS) ②镜像加载原理 ③Dockerfile 操作常用的指令 4.dockerfile编写步骤 dockerfile编写案例

    2024年02月16日
    浏览(50)
  • docker数据管理操作

    主要有两种: 数据卷 数据卷容器 在 Docker 中,数据管理是非常重要的,因为容器本身是临时的,当容器停止或删除时,容器内部的数据也会丢失。为了持久化数据并方便数据共享和重用,Docker 提供了两种主要的数据管理方式:数据卷(Volumes)和数据卷容器(Volume Containers)

    2024年04月13日
    浏览(53)
  • Docker数据管理(数据卷与数据卷容器)

    目录 一、数据卷(Data Volumes) 1、概述 2、原理 3、作用 4、示例:宿主机目录 /var/test 挂载同步到容器中的 /data1 二、数据卷容器(DataVolumes Containers) 1、概述 2、作用 3、示例:创建并使用数据卷容器 三、容器互联:--link 管理 Docker 容器中数据主要有两种方式: 数据卷(Da

    2024年02月11日
    浏览(53)
  • 简单认识Docker数据管理

    因为数据写入后如果停止了容器,再开启数据就会消失,使用数据管理的数据卷挂载,实现了数据的持久化,重启数据还会存在;还有一种方式,容器之间共享文件即相当于有个备份,也会解决停止容器后数据消失的问题。 管理 Docker 容器中数据主要有两种方式:数据卷(

    2024年02月12日
    浏览(48)
  • 【Docker】Linux中Docker数据管理的数据卷及挂载

    目录 一、数据管理 1. 讲述 2. 应用场景 二、数据卷的应用 1. 命令 2. tomcat镜像 3. 挂载数据卷 4. 项目部署在数据卷 三、目录挂载 四、完善Tomcat配置 每篇一获 Docker 的数据管理主要涉及到两个方面: 数据卷(Volumes) 和 绑定挂载(Bind Mounts) 。 数据卷(Volumes) :数据卷是

    2024年01月20日
    浏览(62)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包