Docker的数据卷与数据卷容器操作
一、数据卷
数据卷(Data Volumes)是一个可供容器使用的特殊目录,它将主机操作系统目录直接映射进容器,类似于Linux中的mount动作。
数据卷可以提供很多有用的特性:
数据卷可以在容器之间共享和重用,容器间传递数据将变得高效与方便;
对数据卷内的数据修改后会马上生效,无论是容器内操作还是本地操作;
对数据卷的更新不会影响镜像,解耦开应用和数据;
卷会一直存在,直到没有容器使用,可以完全卸载掉它。
Docker提供了volume子命令来管理数据卷:
create 创建一个数据卷
inspect 打印一个或多个数据卷的详细信息
ls 列出所有数据卷
prune 删除所有未使用的数据卷
rm 删除一个或多个数据卷
1、创建数据卷
docker volume create www-data

创建一个名为www-data的数据卷
2、查看数据卷
docker volume ls

3、打印数据卷详细信息
docker volume inspect www-data

其中,Mountpoint表示默认的宿主机的共享目录
4、启动一个容器挂载此数据卷
挂载动作分为两个:
-v 格式:-v src:dst
--mount 格式:--mount type=' ',source=' ',destination=' ',
--mount中type的类型有三种:
volume:普通数据卷,默认映射到/var/lib/docker/volume路径下; bind:绑定数据卷,映射到主机指定目录下; tmpfs:临时数据卷,只存于内存当中。
其实两种挂载后的作用是相同的,个人喜欢-v
(1)、“-v” 挂载法:
docker run -dit -P -v www-data:/usr/share/nginx/www:ro nginx:1.2.1 /bin/bash

ro的意思是只读,如果设定了只读权限,则容器内不可对此目录或目录内文件的内容进行修改,只能在宿主机中修改,但是如果标注是ro权限的话,默认则是rw可读可写。
在宿主机目录下创新新文件vfan:

容器内挂载目录下文件同步改变:

相反,容器中创建文件,或修改文件内容,也都会同步到宿主机相对应的文件中
(2)、--mount挂载法:
docker run -dit -P --mount type=bind,source=/root/docker,destination=//usr/share/nginx/www nginx:1.2.1 /bin/bash

挂载成功后同样进行以上测试:
在宿主机目录下创建新文件vvvfan:

容器内挂载目录下文件同步改变:

5、删除数据卷
docker volume rm [数据卷名称]

6、删除所有没有占用的数据卷
docker volume prune

二、数据卷容器
挂载数据卷容器的命令为—volumes-from
1、创建数据卷容器datadb
docker run -it -v /dbdata --name datadb nginx /bin/bash

创建一个名为datadb的数据卷容器,数据卷挂载目录为/dbdata
2、创建容器并挂载此数据卷容器
docker run -it --volumes-from datadb --name db1 ubuntu /bin/bash

创建一个名为db1的容器,并将名为datadb的数据卷容器挂载到此容器下
3、再创建一个容器挂载此数据卷容器
docker run -it --volumes-from datadb --name db2 ubuntu /bin/bash

4、创建测试文件
cd dbdata
touch ceshi1 ceshi2 ceshi3

在数据卷容器datadb的dbdata目录下创建ceshi文件
其他挂载此数据卷容器的目录也会同步更新
datadb容器:

db1:

db2:

如果删除一个数据卷,必须在删除最后一个还挂载它的容器时,使用docker rm –v命令来指定同时删除关联的容器。
Docker的数据卷与数据卷容器操作的更多相关文章
- 聊聊Docker数据卷和数据卷容器
当程序在容器运行的时候,特别是需要与其他容器中的程序或容器外部程序进行沟通交流,这时需要进行数据交换,作为常用的两种沟通数据的方式,网络通信与文件读写是需要提供给程序的支持, [数据卷] 文件是数据持 ...
- Docker 数据卷和数据卷容器
1.本节课主要讲解如何在Docker内部及容器之间管理数据.容器中管理数据主要有两种方式:数据卷(Data volumes)数据卷容器(Data volume containers) 2.数据卷:是一 ...
- docker挂载本地目录和数据卷容器
1.docker挂载本地目录 docker可以支持把一个宿主机上的目录挂载到镜像里. 交互模式运行docker run -it -v /home/dock/Downloads:/usr/Downloa ...
- Docker数据卷和数据卷容器
是什么 数据卷设计的目的,在于数据的永久化,他完全独立于容器的生存周期,因此,Docker不会在容器删除时删除其挂载的数据卷,也不会存在类似的垃圾收集机制对容器引用的数据卷进行处理.类似我们Redis ...
- Docker系列(20)- 数据卷容器
数据卷容器 什么是数据卷容器? 容器和容器之间实现数据共享 一个容器先于宿主机创建挂载方式,宿主机就会有改卷的目录 第二个容器使用命令--volumes-from 第一个容器,共享使用了第一个容器与宿 ...
- docker常用命令、镜像命令、容器命令、数据卷,使用dockerFile创建镜像,dockefile的语法规则。
一.docker常用命令? 1. 常用帮助命令 1.1 docker的信息以及版本号 /* docker info 查看docker的信息 images2 docker本身就是一个镜像. docker ...
- Docker-数据卷和数据容器卷
容器中管理数据主要有两种方式: 数据卷(Data Volumes) 数据卷容器(Data Volumes Dontainers) 数据卷 使用-v可以挂载一个本地的目录到容器中作为数据卷. [root ...
- docker--数据卷与数据卷容器
docker--数据卷与数据卷容器 1.数据卷: 创建一个volumes的文件夹: [root@docker01 /]# mkdir volumes [root@docker01 /]# ls bin ...
- docker进阶篇(一) ---- Volume(数据卷)
引言 docker的镜像是由多个只读的文件系统叠加在一起形成的.当我们在我启动一个容器的时候,docker会加载这些只读层并在这些只读层的上面(栈顶)增加一个读写层.这时如果修改正在运行的容器中已有的 ...
- docker定义数据卷及数据卷的备份恢复
前言:生产环境中使用docker时,往往需要对数据进行持久化(只有把容器导出为镜像,才能够保存写的数据,否则容器删除或者停止,所有数据都会没有),或者需要在多个容器之间进行数据共享,这必然涉及容器的数 ...
随机推荐
- TI AM64x工业核心板规格书(双核ARM Cortex-A53 + 单/四核Cortex-R5F + 单核Cortex-M4F,主频1GHz)
1 核心板简介 创龙科技SOM-TL64x是一款基于TI Sitara系列AM64x双核ARM Cortex-A53 + 单/四核Cortex-R5F + 单核Cortex-M4F设计的多核工业级核心 ...
- GuavaCache、EVCache、Tair、Aerospike 缓存框架比较
Guava Cache.EVCache.Tair.Aerospike 是不同类型的缓存解决方案,它们各有特点和应用场景.下面我会逐一分析这些缓存系统的优势.应用场景,并提供一些基本的代码示例. Gua ...
- Java 集合元素排序接口Comparable
什么是Comparable public interface Comparable<T> { /** * Compares this object with the specified o ...
- Curve 替换 Ceph 在网易云音乐的实践
Curve 块存储已在生产环境上线使用近三年,经受住了各种异常和极端场景的考验,性能和稳定性均超出核心业务需求预期 网易云音乐背景 网易云音乐是中国领先的在线音乐平台之一,为音乐爱好者提供互动的内容社 ...
- Docker通信全视角:原理、实践与技术洞察
本文全面深入地探讨了Docker容器通信技术,从基础概念.网络模型.核心组件到实战应用.详细介绍了不同网络模式及其实现,提供了容器通信的技术细节和实用案例,旨在为专业从业者提供深入的技术洞见和实际操作 ...
- webpack4.15.1 学习笔记(七) — 懒加载(Lazy Loading)
懒加载或者按需加载,是一种很好的优化网页或应用的方式.实际上是先把代码在一些逻辑断点处分离开,然后在一些代码块中完成某些操作后,立即引用或引用另外一些新的代码块.这样加快了应用的初始加载速度,减轻了它 ...
- 树莓派配置固定IP地址
树莓派配置固定IP地址 1.编辑文件/etc/dhcpcd.confroot@raspberrypi:~# vi /etc/dhcpcd.conf 2.修改以下参数配置,如果没有就在文件底部添加有线配 ...
- ABC362
A link 判断即可... 点击查看代码 #include<bits/stdc++.h> using namespace std; int r,g,b; string c; signed ...
- 入门Vue+.NET 8 Web Api记录(一)
做自己感觉有意思的或者能解决自己需求的项目作为入门,我觉得是有帮助的,不会觉得那么无聊. 一个最简单的前后端分离项目应该是怎么样的? 我觉得就是前端有个按钮,点击向后端发送一个get请求,获取到数据后 ...
- 2023/4/20 SCRUM个人博客
1.我昨天的任务 学习了PYQT5的部分控件,例如按钮,文本框,文本编辑框,并了解了一些基础布局以及部分对窗口的自定义实现 2.遇到了什么困难 无法理解信号和槽的概念 3.我今天的任务 学习信号和槽的 ...